Merge pull request #1 from shenxn/master

Update from shenxn/protonmail-bridge-docker
This commit is contained in:
Thibault Godouet 2022-12-03 16:26:24 +00:00 committed by GitHub
commit 298bacbd6c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 28 additions and 11 deletions

View File

@ -16,7 +16,7 @@ on:
env: env:
DOCKER_REPO: shenxn/protonmail-bridge DOCKER_REPO: shenxn/protonmail-bridge
DOCKER_REPO_DEV: ghcr.io/shenxn/protonmail-bridge-dev DOCKER_REPO_DEV: ghcr.io/shenxn/protonmail-bridge-dev
PLATFORMS: linux/amd64,linux/arm64/v8 PLATFORMS: linux/amd64,linux/arm64/v8,linux/arm/v7,linux/riscv64
jobs: jobs:
build: build:

3
.gitignore vendored
View File

@ -0,0 +1,3 @@
# Ignoring IDE-specific files
.idea/*
.vscode

View File

@ -12,10 +12,6 @@ Docker Hub: [https://hub.docker.com/r/shenxn/protonmail-bridge](https://hub.dock
GitHub: [https://github.com/shenxn/protonmail-bridge-docker](https://github.com/shenxn/protonmail-bridge-docker) GitHub: [https://github.com/shenxn/protonmail-bridge-docker](https://github.com/shenxn/protonmail-bridge-docker)
## ARMv7 Builds
Currently there is a problem building the new parser targeting 32-bit architectures (i.e. `arm/v7`). The latest working build is `1.4.5-build`. Therefore, if you are using an `arm/v7` device like Raspberry Pi, do not upgrade to newer version. More information about the problem can be found [here](https://www.reddit.com/r/ProtonMail/comments/jvzm12/issue_building_bridge_150/). If you have any idea on how to fix this, a PR is welcome.
## ARM Support ## ARM Support
We now support ARM devices (`arm64` and `arm/v7`)! Use the images tagged with `build`. See next section for details. We now support ARM devices (`arm64` and `arm/v7`)! Use the images tagged with `build`. See next section for details.
@ -24,7 +20,7 @@ We now support ARM devices (`arm64` and `arm/v7`)! Use the images tagged with `b
There are two types of images. There are two types of images.
- `deb`: Images based on the official [.deb release](https://protonmail.com/bridge/install). It only supports the `amd64` architecture. - `deb`: Images based on the official [.deb release](https://protonmail.com/bridge/install). It only supports the `amd64` architecture.
- `build`: Images based on the [source code](https://github.com/ProtonMail/proton-bridge). It supports `amd64`, `arm64`, and `arm/v7`. Supporting to more architectures is possible. PRs are welcome. - `build`: Images based on the [source code](https://github.com/ProtonMail/proton-bridge). It supports `amd64`, `arm64`, `arm/v7` and `riscv64`. Supporting to more architectures is possible. PRs are welcome.
tag | description tag | description
-- | -- -- | --

View File

@ -1,14 +1,15 @@
FROM golang:1.15 AS build # Use carlosedp/golang for riscv64 support
FROM carlosedp/golang:1.18 AS build
# Install dependencies # Install dependencies
RUN apt-get update && apt-get install -y libsecret-1-dev RUN apt-get update && apt-get install -y git build-essential libsecret-1-dev
# Build # Build
WORKDIR /build/ WORKDIR /build/
COPY build.sh VERSION /build/ COPY build.sh VERSION /build/
RUN bash build.sh RUN bash build.sh
FROM ubuntu:bionic FROM ubuntu:focal
LABEL maintainer="Xiaonan Shen <s@sxn.dev>" LABEL maintainer="Xiaonan Shen <s@sxn.dev>"
EXPOSE 25/tcp EXPOSE 25/tcp
@ -23,6 +24,7 @@ RUN apt-get update \
COPY gpgparams entrypoint.sh /protonmail/ COPY gpgparams entrypoint.sh /protonmail/
# Copy protonmail # Copy protonmail
COPY --from=build /build/proton-bridge/bridge /protonmail/
COPY --from=build /build/proton-bridge/proton-bridge /protonmail/ COPY --from=build /build/proton-bridge/proton-bridge /protonmail/
# Add a user 'protonmail' with UID 8535 # Add a user 'protonmail' with UID 8535

View File

@ -1 +1 @@
1.8.7 3.0.4

View File

@ -9,5 +9,15 @@ git clone https://github.com/ProtonMail/proton-bridge.git
cd proton-bridge cd proton-bridge
git checkout v$VERSION git checkout v$VERSION
ARCH=$(uname -m)
if [[ $ARCH == "armv7l" ]] ; then
# This is expected to fail, and we use the following patch to fix
make build-nogui || true
# For 32bit architectures, there was a overflow error on the parser
# This is a workaround for this problem found at:
# https://github.com/antlr/antlr4/issues/2433#issuecomment-774514106
find $(go env GOPATH)/pkg/mod/github.com/\!proton\!mail/go-rfc5322*/ -type f -exec sed -i.bak 's/(1<</(int64(1)<</g' {} +
fi
# Build # Build
make build-nogui make build-nogui

View File

@ -13,6 +13,12 @@ if [[ $1 == init ]]; then
# Initialize pass # Initialize pass
gpg --generate-key --batch /protonmail/gpgparams gpg --generate-key --batch /protonmail/gpgparams
pass init pass-key pass init pass-key
# Kill the other instance as only one can be running at a time.
# This allows users to run entrypoint init inside a running conainter
# which is useful in a k8s environment.
# || true to make sure this would not fail in case there is no running instance.
pkill protonmail-bridge || true
# Login # Login
/protonmail/proton-bridge --cli $@ /protonmail/proton-bridge --cli $@

View File

@ -1 +1 @@
1.8.7-1 2.3.0-1