From f3e41a2856631f545b504f529a3ba63047a4de93 Mon Sep 17 00:00:00 2001 From: Michael Gibson Date: Thu, 3 Dec 2020 13:01:56 -0600 Subject: [PATCH 01/51] Fixed binary name, added RELEASE option. --- Dockerfile | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/Dockerfile b/Dockerfile index 17eaea5..307a4f5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,6 +2,7 @@ FROM golang:1.14-alpine as build ENV LANG C.UTF-8 RUN apk add --no-cache \ + curl \ gcc \ git \ libsecret-dev \ @@ -9,11 +10,19 @@ RUN apk add --no-cache \ musl-dev WORKDIR /usr/src +ARG RELEASE ARG TAG -RUN git clone https://github.com/ProtonMail/proton-bridge.git proton-bridge \ - && cd proton-bridge \ - && if [ -n "$TAG" ]; then echo "Using tags/$TAG..."; git checkout tags/$TAG; fi \ - && make build-nogui +RUN if [ -n "$RELEASE" ]; then \ + echo "Using release $RELEASE..." \ + && curl -L -s "https://github.com/ProtonMail/proton-bridge/archive/$RELEASE.tar.gz" | tar zx \ + && ln -s "proton-bridge-$RELEASE" proton-bridge \ + && cd proton-bridge \ + ; else \ + git clone https://github.com/ProtonMail/proton-bridge.git proton-bridge \ + && cd proton-bridge \ + && if [ -n "$TAG" ]; then echo "Using tags/$TAG..."; git checkout tags/$TAG; fi \ + ; fi \ + && make build-nogui # Create a container for the ProtonMail Bridge. FROM alpine:edge @@ -22,7 +31,7 @@ ENV LANG C.UTF-8 EXPOSE 25/tcp EXPOSE 143/tcp -COPY --from=build /usr/src/proton-bridge/Desktop-Bridge /bin/protonmail-bridge +COPY --from=build /usr/src/proton-bridge/proton-bridge /bin/proton-bridge COPY entrypoint /bin/ COPY initproton /bin/ RUN apk add --no-cache \ From 30c93de13ea4ae593e1b1ef02e3bfe3163bf21f8 Mon Sep 17 00:00:00 2001 From: Michael Gibson Date: Thu, 3 Dec 2020 13:02:16 -0600 Subject: [PATCH 02/51] Updated BRIDGE binary. --- initproton | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/initproton b/initproton index 258bc77..aa1f305 100755 --- a/initproton +++ b/initproton @@ -1,7 +1,7 @@ #!/bin/bash set -eufo pipefail -BRIDGE=/bin/protonmail-bridge +BRIDGE=/bin/proton-bridge FIFO=/tmp/fifo PRINT_INFO=${PRINT_INFO:-""} @@ -37,4 +37,4 @@ if [ -n "$LOG_LEVEL" ]; then ARGUMENTS="${ARGUMENTS} --log-level ${LOG_LEVEL}" fi -$BRIDGE $ARGUMENTS \ No newline at end of file +$BRIDGE $ARGUMENTS From b52a231c3c8cd87a23c00c7198be20029f4f184f Mon Sep 17 00:00:00 2001 From: Michael Gibson Date: Thu, 3 Dec 2020 14:06:11 -0600 Subject: [PATCH 03/51] Made changes to CI/CD for buildx build. --- .drone.yml | 36 +++++++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/.drone.yml b/.drone.yml index 5b3601b..e45bedc 100644 --- a/.drone.yml +++ b/.drone.yml @@ -3,22 +3,36 @@ kind: pipeline type: docker name: default +environment: + DOCKER_CLI_EXPERIMENTAL: enabled + +services: + - name: dind + image: docker:dind + privileged: true + command: ["dockerd", "--experimental"] + volumes: + - name: docker_socket + path: /var/run/docker.sock + volumes: - name: docker_socket - host: - path: /var/run/docker.sock + temp: {} steps: - name: build - image: alexviscreanu/buildx + image: docker:latest commands: - - docker run --rm --privileged docker/binfmt:a7996909642ee92942dcd6cff44b9b95f08dad64 - - export BUILDER_ID="crosscomp-$(cat /proc/self/cgroup | head -1 | cut -d '/' -f 3)" - - docker buildx create --use --name $BUILDER_ID --driver-opt image=stargate01/buildkit - - docker buildx inspect --bootstrap - - echo $REGISTRY_PASS | docker login --username $REGISTRY_USER --password-stdin $REGISTRY_HOST - - docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 --output=type=image,push=true --progress tty --build-arg TAG=$DRONE_TAG -t $REGISTRY_HOST/$IMAGE:$DRONE_TAG -t $REGISTRY_HOST/$IMAGE:latest . - - docker buildx rm $BUILDER_ID + - case $(uname -a) in *x86_64*) export ARCH="amd64" ;; *) export ARCH="unknown" ;; esac + - export BUILDX_URL=$(wget -q -O - https://api.github.com/repos/docker/buildx/releases/latest | grep "browser_download_url.*linux-${ARCH}" | cut -d: -f2,3 | tr -d \") + - mkdir -p ~/.docker/cli-plugins + - wget -o ~/.docker/cli-plugins/docker-buildx "${BUILDX_URL}" + - chmod a+x ~/.docker/cli-plugins/docker-buildx + - docker version + - docker buildx version + - docker run --rm --privileged multiarch/qemu-user-static --reset -p yes + - docker buildx create --name multiarch --use + - docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6 --output=type=image,push=true --progress tty --build-arg TAG=$DRONE_TAG -t $REGISTRY_HOST/$IMAGE:$DRONE_TAG -t $REGISTRY_HOST/$IMAGE:latest . volumes: - name: docker_socket path: /var/run/docker.sock @@ -32,4 +46,4 @@ steps: trigger: event: - - tag \ No newline at end of file + - tag From c812a8aed76c1fff37e615f07e0ab320284399f4 Mon Sep 17 00:00:00 2001 From: Michael Gibson Date: Thu, 3 Dec 2020 14:11:48 -0600 Subject: [PATCH 04/51] Quoted strings. --- .drone.yml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/.drone.yml b/.drone.yml index e45bedc..845ec97 100644 --- a/.drone.yml +++ b/.drone.yml @@ -20,19 +20,19 @@ volumes: temp: {} steps: - - name: build + - name: build image: docker:latest commands: - - case $(uname -a) in *x86_64*) export ARCH="amd64" ;; *) export ARCH="unknown" ;; esac - - export BUILDX_URL=$(wget -q -O - https://api.github.com/repos/docker/buildx/releases/latest | grep "browser_download_url.*linux-${ARCH}" | cut -d: -f2,3 | tr -d \") - - mkdir -p ~/.docker/cli-plugins - - wget -o ~/.docker/cli-plugins/docker-buildx "${BUILDX_URL}" - - chmod a+x ~/.docker/cli-plugins/docker-buildx - - docker version - - docker buildx version - - docker run --rm --privileged multiarch/qemu-user-static --reset -p yes - - docker buildx create --name multiarch --use - - docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6 --output=type=image,push=true --progress tty --build-arg TAG=$DRONE_TAG -t $REGISTRY_HOST/$IMAGE:$DRONE_TAG -t $REGISTRY_HOST/$IMAGE:latest . + - 'case $(uname -a) in *x86_64*) export ARCH="amd64" ;; *) export ARCH="unknown" ;; esac' + - 'export BUILDX_URL=$(wget -q -O - https://api.github.com/repos/docker/buildx/releases/latest | grep "browser_download_url.*linux-${ARCH}" | cut -d: -f2,3 | tr -d \")' + - 'mkdir -p ~/.docker/cli-plugins' + - 'wget -o ~/.docker/cli-plugins/docker-buildx "${BUILDX_URL}"' + - 'chmod a+x ~/.docker/cli-plugins/docker-buildx' + - 'docker version' + - 'docker buildx version' + - 'docker run --rm --privileged multiarch/qemu-user-static --reset -p yes' + - 'docker buildx create --name multiarch --use' + - 'docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6 --output=type=image,push=true --progress tty --build-arg TAG=$DRONE_TAG -t $REGISTRY_HOST/$IMAGE:$DRONE_TAG -t $REGISTRY_HOST/$IMAGE:latest .' volumes: - name: docker_socket path: /var/run/docker.sock From d4f4a0a98e5dde156409bb0586ac4d54b5b4a38e Mon Sep 17 00:00:00 2001 From: Michael Gibson Date: Thu, 3 Dec 2020 14:19:26 -0600 Subject: [PATCH 05/51] More CI/CD testing. --- .drone.yml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/.drone.yml b/.drone.yml index 845ec97..3612243 100644 --- a/.drone.yml +++ b/.drone.yml @@ -24,7 +24,9 @@ steps: image: docker:latest commands: - 'case $(uname -a) in *x86_64*) export ARCH="amd64" ;; *) export ARCH="unknown" ;; esac' - - 'export BUILDX_URL=$(wget -q -O - https://api.github.com/repos/docker/buildx/releases/latest | grep "browser_download_url.*linux-${ARCH}" | cut -d: -f2,3 | tr -d \")' + - 'echo Found ARCH=$ARCH' + - 'export BUILDX_URL=$(wget -q -O - https://api.github.com/repos/docker/buildx/releases/latest | grep "browser_download_url.*linux-$ARCH" | cut -d: -f2,3 | tr -d \")' + - 'echo Found BUILDX_URL=$BUILDX_URL' - 'mkdir -p ~/.docker/cli-plugins' - 'wget -o ~/.docker/cli-plugins/docker-buildx "${BUILDX_URL}"' - 'chmod a+x ~/.docker/cli-plugins/docker-buildx' @@ -32,7 +34,8 @@ steps: - 'docker buildx version' - 'docker run --rm --privileged multiarch/qemu-user-static --reset -p yes' - 'docker buildx create --name multiarch --use' - - 'docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6 --output=type=image,push=true --progress tty --build-arg TAG=$DRONE_TAG -t $REGISTRY_HOST/$IMAGE:$DRONE_TAG -t $REGISTRY_HOST/$IMAGE:latest .' + #- 'docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6 --output=type=image,push=true --progress tty --build-arg TAG=$DRONE_TAG -t $REGISTRY_HOST/$IMAGE:$DRONE_TAG -t $REGISTRY_HOST/$IMAGE:latest .' + - 'docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6 --output=type=image,push=true --progress tty --build-arg TAG="br-1.5.2" -t $REGISTRY_HOST/$IMAGE:latest .' volumes: - name: docker_socket path: /var/run/docker.sock @@ -44,6 +47,6 @@ steps: REGISTRY_PASS: from_secret: registry_password -trigger: - event: - - tag +#trigger: +# event: +# - tag From 52d152b8c262b6d4dedab935bc08aa73d4001e07 Mon Sep 17 00:00:00 2001 From: Michael Gibson Date: Thu, 3 Dec 2020 14:20:23 -0600 Subject: [PATCH 06/51] Removed brackets from variable. --- .drone.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.yml b/.drone.yml index 3612243..8b787d4 100644 --- a/.drone.yml +++ b/.drone.yml @@ -28,7 +28,7 @@ steps: - 'export BUILDX_URL=$(wget -q -O - https://api.github.com/repos/docker/buildx/releases/latest | grep "browser_download_url.*linux-$ARCH" | cut -d: -f2,3 | tr -d \")' - 'echo Found BUILDX_URL=$BUILDX_URL' - 'mkdir -p ~/.docker/cli-plugins' - - 'wget -o ~/.docker/cli-plugins/docker-buildx "${BUILDX_URL}"' + - 'wget -o ~/.docker/cli-plugins/docker-buildx "$BUILDX_URL"' - 'chmod a+x ~/.docker/cli-plugins/docker-buildx' - 'docker version' - 'docker buildx version' From 8758d46621650967d8ca9c231d766cd13ccc657a Mon Sep 17 00:00:00 2001 From: Michael Gibson Date: Thu, 3 Dec 2020 14:21:37 -0600 Subject: [PATCH 07/51] Updated wget command. --- .drone.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.yml b/.drone.yml index 8b787d4..dd82d23 100644 --- a/.drone.yml +++ b/.drone.yml @@ -28,7 +28,7 @@ steps: - 'export BUILDX_URL=$(wget -q -O - https://api.github.com/repos/docker/buildx/releases/latest | grep "browser_download_url.*linux-$ARCH" | cut -d: -f2,3 | tr -d \")' - 'echo Found BUILDX_URL=$BUILDX_URL' - 'mkdir -p ~/.docker/cli-plugins' - - 'wget -o ~/.docker/cli-plugins/docker-buildx "$BUILDX_URL"' + - 'wget -o ~/.docker/cli-plugins/docker-buildx $BUILDX_URL' - 'chmod a+x ~/.docker/cli-plugins/docker-buildx' - 'docker version' - 'docker buildx version' From 254b916aa6a3109cb56bb7f9524a10011acf110a Mon Sep 17 00:00:00 2001 From: Michael Gibson Date: Thu, 3 Dec 2020 14:24:35 -0600 Subject: [PATCH 08/51] Updated docker socket. --- .drone.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.drone.yml b/.drone.yml index dd82d23..b5ec81d 100644 --- a/.drone.yml +++ b/.drone.yml @@ -13,7 +13,7 @@ services: command: ["dockerd", "--experimental"] volumes: - name: docker_socket - path: /var/run/docker.sock + path: /var/run volumes: - name: docker_socket @@ -38,7 +38,7 @@ steps: - 'docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6 --output=type=image,push=true --progress tty --build-arg TAG="br-1.5.2" -t $REGISTRY_HOST/$IMAGE:latest .' volumes: - name: docker_socket - path: /var/run/docker.sock + path: /var/run environment: IMAGE: protonmail-bridge REGISTRY_HOST: registry.thegibsonhome.net From 161f5cbbf2bb089ff38a42a380f711d52c0b46f0 Mon Sep 17 00:00:00 2001 From: Michael Gibson Date: Thu, 3 Dec 2020 14:30:41 -0600 Subject: [PATCH 09/51] Debugging CI/CD. --- .drone.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.drone.yml b/.drone.yml index b5ec81d..306b3be 100644 --- a/.drone.yml +++ b/.drone.yml @@ -9,8 +9,8 @@ environment: services: - name: dind image: docker:dind - privileged: true command: ["dockerd", "--experimental"] + privileged: true volumes: - name: docker_socket path: /var/run @@ -23,10 +23,9 @@ steps: - name: build image: docker:latest commands: + - 'echo DOCKER_CLI_EXPERIMENTAL=$DOCKER_CLI_EXPERIMENTAL' - 'case $(uname -a) in *x86_64*) export ARCH="amd64" ;; *) export ARCH="unknown" ;; esac' - - 'echo Found ARCH=$ARCH' - 'export BUILDX_URL=$(wget -q -O - https://api.github.com/repos/docker/buildx/releases/latest | grep "browser_download_url.*linux-$ARCH" | cut -d: -f2,3 | tr -d \")' - - 'echo Found BUILDX_URL=$BUILDX_URL' - 'mkdir -p ~/.docker/cli-plugins' - 'wget -o ~/.docker/cli-plugins/docker-buildx $BUILDX_URL' - 'chmod a+x ~/.docker/cli-plugins/docker-buildx' From cfe1bf4e9babece757cd2c7ecea7bf74ba803430 Mon Sep 17 00:00:00 2001 From: Michael Gibson Date: Thu, 3 Dec 2020 14:33:51 -0600 Subject: [PATCH 10/51] Added docker plugins to PATH. --- .drone.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.drone.yml b/.drone.yml index 306b3be..ef558b4 100644 --- a/.drone.yml +++ b/.drone.yml @@ -23,12 +23,13 @@ steps: - name: build image: docker:latest commands: - - 'echo DOCKER_CLI_EXPERIMENTAL=$DOCKER_CLI_EXPERIMENTAL' - 'case $(uname -a) in *x86_64*) export ARCH="amd64" ;; *) export ARCH="unknown" ;; esac' - 'export BUILDX_URL=$(wget -q -O - https://api.github.com/repos/docker/buildx/releases/latest | grep "browser_download_url.*linux-$ARCH" | cut -d: -f2,3 | tr -d \")' - 'mkdir -p ~/.docker/cli-plugins' - 'wget -o ~/.docker/cli-plugins/docker-buildx $BUILDX_URL' - 'chmod a+x ~/.docker/cli-plugins/docker-buildx' + - 'export PATH=$PATH:$HOME/.docker/cli-plugins' + - 'echo PATH=$PATH' - 'docker version' - 'docker buildx version' - 'docker run --rm --privileged multiarch/qemu-user-static --reset -p yes' From 1672fda080c890366ebf9df919e210bb7408251f Mon Sep 17 00:00:00 2001 From: Michael Gibson Date: Thu, 3 Dec 2020 14:35:14 -0600 Subject: [PATCH 11/51] Check for buildx. --- .drone.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.yml b/.drone.yml index ef558b4..5770080 100644 --- a/.drone.yml +++ b/.drone.yml @@ -29,7 +29,7 @@ steps: - 'wget -o ~/.docker/cli-plugins/docker-buildx $BUILDX_URL' - 'chmod a+x ~/.docker/cli-plugins/docker-buildx' - 'export PATH=$PATH:$HOME/.docker/cli-plugins' - - 'echo PATH=$PATH' + - 'ls -lAtr $HOME/.docker/cli-plugins' - 'docker version' - 'docker buildx version' - 'docker run --rm --privileged multiarch/qemu-user-static --reset -p yes' From bd56e77823d4f1ffed94ed584c8090ed7235d743 Mon Sep 17 00:00:00 2001 From: Michael Gibson Date: Thu, 3 Dec 2020 14:40:17 -0600 Subject: [PATCH 12/51] Fixed wget command. --- .drone.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.drone.yml b/.drone.yml index 5770080..8b03597 100644 --- a/.drone.yml +++ b/.drone.yml @@ -26,10 +26,8 @@ steps: - 'case $(uname -a) in *x86_64*) export ARCH="amd64" ;; *) export ARCH="unknown" ;; esac' - 'export BUILDX_URL=$(wget -q -O - https://api.github.com/repos/docker/buildx/releases/latest | grep "browser_download_url.*linux-$ARCH" | cut -d: -f2,3 | tr -d \")' - 'mkdir -p ~/.docker/cli-plugins' - - 'wget -o ~/.docker/cli-plugins/docker-buildx $BUILDX_URL' + - 'wget -O ~/.docker/cli-plugins/docker-buildx $BUILDX_URL' - 'chmod a+x ~/.docker/cli-plugins/docker-buildx' - - 'export PATH=$PATH:$HOME/.docker/cli-plugins' - - 'ls -lAtr $HOME/.docker/cli-plugins' - 'docker version' - 'docker buildx version' - 'docker run --rm --privileged multiarch/qemu-user-static --reset -p yes' From feab405f183ea88c9a3f0d28de3dd4812e0c16e5 Mon Sep 17 00:00:00 2001 From: Michael Gibson Date: Thu, 3 Dec 2020 15:08:52 -0600 Subject: [PATCH 13/51] Updated golang version, removed armv6. --- .drone.yml | 4 ++-- Dockerfile | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.drone.yml b/.drone.yml index 8b03597..08ca7be 100644 --- a/.drone.yml +++ b/.drone.yml @@ -32,8 +32,8 @@ steps: - 'docker buildx version' - 'docker run --rm --privileged multiarch/qemu-user-static --reset -p yes' - 'docker buildx create --name multiarch --use' - #- 'docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6 --output=type=image,push=true --progress tty --build-arg TAG=$DRONE_TAG -t $REGISTRY_HOST/$IMAGE:$DRONE_TAG -t $REGISTRY_HOST/$IMAGE:latest .' - - 'docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6 --output=type=image,push=true --progress tty --build-arg TAG="br-1.5.2" -t $REGISTRY_HOST/$IMAGE:latest .' + #- 'docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 --output=type=image,push=true --progress tty --build-arg TAG=$DRONE_TAG -t $REGISTRY_HOST/$IMAGE:$DRONE_TAG -t $REGISTRY_HOST/$IMAGE:latest .' + - 'docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 --output=type=image,push=true --progress tty --build-arg TAG="br-1.5.2" -t $REGISTRY_HOST/$IMAGE:latest .' volumes: - name: docker_socket path: /var/run diff --git a/Dockerfile b/Dockerfile index 307a4f5..90244d7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ # Build the ProtonMail Bridge. -FROM golang:1.14-alpine as build +FROM golang:1.15-alpine as build ENV LANG C.UTF-8 RUN apk add --no-cache \ curl \ From d5845951b1cc112765a9adc2ec4cd279e7e40ec5 Mon Sep 17 00:00:00 2001 From: Michael Gibson Date: Thu, 3 Dec 2020 15:28:31 -0600 Subject: [PATCH 14/51] Removed arm/v7. --- .drone.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.drone.yml b/.drone.yml index 08ca7be..3531dce 100644 --- a/.drone.yml +++ b/.drone.yml @@ -32,8 +32,8 @@ steps: - 'docker buildx version' - 'docker run --rm --privileged multiarch/qemu-user-static --reset -p yes' - 'docker buildx create --name multiarch --use' - #- 'docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 --output=type=image,push=true --progress tty --build-arg TAG=$DRONE_TAG -t $REGISTRY_HOST/$IMAGE:$DRONE_TAG -t $REGISTRY_HOST/$IMAGE:latest .' - - 'docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 --output=type=image,push=true --progress tty --build-arg TAG="br-1.5.2" -t $REGISTRY_HOST/$IMAGE:latest .' + #- 'docker buildx build --platform linux/amd64,linux/arm64 --output=type=image,push=true --progress tty --build-arg TAG=$DRONE_TAG -t $REGISTRY_HOST/$IMAGE:$DRONE_TAG -t $REGISTRY_HOST/$IMAGE:latest .' + - 'docker buildx build --platform linux/amd64,linux/arm64 --output=type=image,push=true --progress tty --build-arg TAG="br-1.5.2" -t $REGISTRY_HOST/$IMAGE:latest .' volumes: - name: docker_socket path: /var/run From ea7f123e2cdb7daa7f230680e1ef872d51dcfb36 Mon Sep 17 00:00:00 2001 From: Michael Gibson Date: Thu, 3 Dec 2020 16:00:51 -0600 Subject: [PATCH 15/51] Added docker login commands. --- .drone.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.drone.yml b/.drone.yml index 3531dce..af2f161 100644 --- a/.drone.yml +++ b/.drone.yml @@ -31,6 +31,7 @@ steps: - 'docker version' - 'docker buildx version' - 'docker run --rm --privileged multiarch/qemu-user-static --reset -p yes' + - 'echo -n $REGISTRY_PASS | docker login -u $REGISTRY_USER --password-stdin $REGISTRY_HOST' - 'docker buildx create --name multiarch --use' #- 'docker buildx build --platform linux/amd64,linux/arm64 --output=type=image,push=true --progress tty --build-arg TAG=$DRONE_TAG -t $REGISTRY_HOST/$IMAGE:$DRONE_TAG -t $REGISTRY_HOST/$IMAGE:latest .' - 'docker buildx build --platform linux/amd64,linux/arm64 --output=type=image,push=true --progress tty --build-arg TAG="br-1.5.2" -t $REGISTRY_HOST/$IMAGE:latest .' From f046d78430b42b011e25d5b2b6550fd20ab81e8c Mon Sep 17 00:00:00 2001 From: Michael Gibson Date: Thu, 3 Dec 2020 16:29:42 -0600 Subject: [PATCH 16/51] Restored tag directives. --- .drone.yml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.drone.yml b/.drone.yml index af2f161..73a7520 100644 --- a/.drone.yml +++ b/.drone.yml @@ -33,8 +33,7 @@ steps: - 'docker run --rm --privileged multiarch/qemu-user-static --reset -p yes' - 'echo -n $REGISTRY_PASS | docker login -u $REGISTRY_USER --password-stdin $REGISTRY_HOST' - 'docker buildx create --name multiarch --use' - #- 'docker buildx build --platform linux/amd64,linux/arm64 --output=type=image,push=true --progress tty --build-arg TAG=$DRONE_TAG -t $REGISTRY_HOST/$IMAGE:$DRONE_TAG -t $REGISTRY_HOST/$IMAGE:latest .' - - 'docker buildx build --platform linux/amd64,linux/arm64 --output=type=image,push=true --progress tty --build-arg TAG="br-1.5.2" -t $REGISTRY_HOST/$IMAGE:latest .' + - 'docker buildx build --platform linux/amd64,linux/arm64 --output=type=image,push=true --progress tty --build-arg TAG=$DRONE_TAG -t $REGISTRY_HOST/$IMAGE:$DRONE_TAG -t $REGISTRY_HOST/$IMAGE:latest .' volumes: - name: docker_socket path: /var/run @@ -46,6 +45,6 @@ steps: REGISTRY_PASS: from_secret: registry_password -#trigger: -# event: -# - tag +trigger: + event: + - tag From bd2554e463f99ae47576c56a891193af42af578d Mon Sep 17 00:00:00 2001 From: Michael Gibson Date: Fri, 4 Dec 2020 09:20:39 -0600 Subject: [PATCH 17/51] Cleaned formatting, set arch requirement. --- .drone.yml | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/.drone.yml b/.drone.yml index 73a7520..32ab257 100644 --- a/.drone.yml +++ b/.drone.yml @@ -6,6 +6,9 @@ name: default environment: DOCKER_CLI_EXPERIMENTAL: enabled +platform: + arch: amd64 + services: - name: dind image: docker:dind @@ -23,17 +26,25 @@ steps: - name: build image: docker:latest commands: - - 'case $(uname -a) in *x86_64*) export ARCH="amd64" ;; *) export ARCH="unknown" ;; esac' - - 'export BUILDX_URL=$(wget -q -O - https://api.github.com/repos/docker/buildx/releases/latest | grep "browser_download_url.*linux-$ARCH" | cut -d: -f2,3 | tr -d \")' - - 'mkdir -p ~/.docker/cli-plugins' - - 'wget -O ~/.docker/cli-plugins/docker-buildx $BUILDX_URL' - - 'chmod a+x ~/.docker/cli-plugins/docker-buildx' - - 'docker version' - - 'docker buildx version' - - 'docker run --rm --privileged multiarch/qemu-user-static --reset -p yes' - - 'echo -n $REGISTRY_PASS | docker login -u $REGISTRY_USER --password-stdin $REGISTRY_HOST' - - 'docker buildx create --name multiarch --use' - - 'docker buildx build --platform linux/amd64,linux/arm64 --output=type=image,push=true --progress tty --build-arg TAG=$DRONE_TAG -t $REGISTRY_HOST/$IMAGE:$DRONE_TAG -t $REGISTRY_HOST/$IMAGE:latest .' + - >- + case $(uname -a) in + *x86_64*) + export ARCH="amd64" + ;; + *) + export ARCH="unknown" + ;; + esac + - export BUILDX_URL=$(wget -q -O - https://api.github.com/repos/docker/buildx/releases/latest | grep "browser_download_url.*linux-$ARCH" | cut -d: -f2,3 | tr -d \") + - mkdir -p ~/.docker/cli-plugins + - wget -O ~/.docker/cli-plugins/docker-buildx $BUILDX_URL + - chmod a+x ~/.docker/cli-plugins/docker-buildx + - docker version + - docker buildx version + - docker run --rm --privileged multiarch/qemu-user-static --reset -p yes + - echo -n $REGISTRY_PASS | docker login -u $REGISTRY_USER --password-stdin $REGISTRY_HOST + - docker buildx create --name multiarch --use + - docker buildx build --platform linux/amd64,linux/arm64 --output=type=image,push=true --progress tty --build-arg TAG=$DRONE_TAG -t $REGISTRY_HOST/$IMAGE:$DRONE_TAG -t $REGISTRY_HOST/$IMAGE:latest . volumes: - name: docker_socket path: /var/run From 457f5e86cb81799dd8a822afd79314e827633ab1 Mon Sep 17 00:00:00 2001 From: Michael Gibson Date: Fri, 4 Dec 2020 10:01:08 -0600 Subject: [PATCH 18/51] Made formatting more readable. --- .drone.yml | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/.drone.yml b/.drone.yml index 32ab257..4f7f45b 100644 --- a/.drone.yml +++ b/.drone.yml @@ -35,16 +35,33 @@ steps: export ARCH="unknown" ;; esac - - export BUILDX_URL=$(wget -q -O - https://api.github.com/repos/docker/buildx/releases/latest | grep "browser_download_url.*linux-$ARCH" | cut -d: -f2,3 | tr -d \") + - >- + export BUILDX_URL=$( + wget -q -O - + https://api.github.com/repos/docker/buildx/releases/latest + | grep "browser_download_url.*linux-$ARCH" + | cut -d: -f2,3 + | tr -d \" + ) - mkdir -p ~/.docker/cli-plugins - wget -O ~/.docker/cli-plugins/docker-buildx $BUILDX_URL - chmod a+x ~/.docker/cli-plugins/docker-buildx - docker version - docker buildx version - docker run --rm --privileged multiarch/qemu-user-static --reset -p yes - - echo -n $REGISTRY_PASS | docker login -u $REGISTRY_USER --password-stdin $REGISTRY_HOST + - >- + echo -n $REGISTRY_PASS + | docker login -u $REGISTRY_USER --password-stdin $REGISTRY_HOST - docker buildx create --name multiarch --use - - docker buildx build --platform linux/amd64,linux/arm64 --output=type=image,push=true --progress tty --build-arg TAG=$DRONE_TAG -t $REGISTRY_HOST/$IMAGE:$DRONE_TAG -t $REGISTRY_HOST/$IMAGE:latest . + - >- + docker buildx build + --platform linux/amd64,linux/arm64 + --output=type=image,push=true + --progress tty + --build-arg TAG=$DRONE_TAG + -t $REGISTRY_HOST/$IMAGE:$DRONE_TAG + -t $REGISTRY_HOST/$IMAGE:latest + . volumes: - name: docker_socket path: /var/run From 8e22ce7e9f206b1f1d8c6e5831242da1405ff097 Mon Sep 17 00:00:00 2001 From: Michael Gibson Date: Fri, 4 Dec 2020 10:01:51 -0600 Subject: [PATCH 19/51] Removed tags for testing. --- .drone.yml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/.drone.yml b/.drone.yml index 4f7f45b..3095f80 100644 --- a/.drone.yml +++ b/.drone.yml @@ -58,8 +58,6 @@ steps: --platform linux/amd64,linux/arm64 --output=type=image,push=true --progress tty - --build-arg TAG=$DRONE_TAG - -t $REGISTRY_HOST/$IMAGE:$DRONE_TAG -t $REGISTRY_HOST/$IMAGE:latest . volumes: @@ -73,6 +71,6 @@ steps: REGISTRY_PASS: from_secret: registry_password -trigger: - event: - - tag +#trigger: +# event: +# - tag From 139b6744cbd7dc555e53f9e16dbafa0c042d03dd Mon Sep 17 00:00:00 2001 From: Michael Gibson Date: Fri, 4 Dec 2020 10:06:16 -0600 Subject: [PATCH 20/51] Formatting fixes. --- .drone.yml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/.drone.yml b/.drone.yml index 3095f80..61b661c 100644 --- a/.drone.yml +++ b/.drone.yml @@ -36,12 +36,12 @@ steps: ;; esac - >- - export BUILDX_URL=$( - wget -q -O - - https://api.github.com/repos/docker/buildx/releases/latest - | grep "browser_download_url.*linux-$ARCH" - | cut -d: -f2,3 - | tr -d \" + export BUILDX_URL=$( \ + wget -q -O - \ + https://api.github.com/repos/docker/buildx/releases/latest \ + | grep "browser_download_url.*linux-$ARCH" \ + | cut -d: -f2,3 \ + | tr -d \" \ ) - mkdir -p ~/.docker/cli-plugins - wget -O ~/.docker/cli-plugins/docker-buildx $BUILDX_URL @@ -54,11 +54,11 @@ steps: | docker login -u $REGISTRY_USER --password-stdin $REGISTRY_HOST - docker buildx create --name multiarch --use - >- - docker buildx build - --platform linux/amd64,linux/arm64 - --output=type=image,push=true - --progress tty - -t $REGISTRY_HOST/$IMAGE:latest + docker buildx build \ + --platform linux/amd64,linux/arm64 \ + --output=type=image,push=true \ + --progress tty \ + -t $REGISTRY_HOST/$IMAGE:latest \ . volumes: - name: docker_socket From bdd5988498b2efac5f49c37bf1b6c3e510720834 Mon Sep 17 00:00:00 2001 From: Michael Gibson Date: Fri, 4 Dec 2020 10:06:34 -0600 Subject: [PATCH 21/51] Formatting fixes. --- .drone.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.yml b/.drone.yml index 61b661c..c8d61a0 100644 --- a/.drone.yml +++ b/.drone.yml @@ -50,7 +50,7 @@ steps: - docker buildx version - docker run --rm --privileged multiarch/qemu-user-static --reset -p yes - >- - echo -n $REGISTRY_PASS + echo -n $REGISTRY_PASS \ | docker login -u $REGISTRY_USER --password-stdin $REGISTRY_HOST - docker buildx create --name multiarch --use - >- From 4409953211fac8d5c14bdcfa8923a7d152dab56c Mon Sep 17 00:00:00 2001 From: Michael Gibson Date: Fri, 4 Dec 2020 10:24:18 -0600 Subject: [PATCH 22/51] Change multiline string type. --- .drone.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.drone.yml b/.drone.yml index c8d61a0..0d4bcce 100644 --- a/.drone.yml +++ b/.drone.yml @@ -26,7 +26,7 @@ steps: - name: build image: docker:latest commands: - - >- + - |- case $(uname -a) in *x86_64*) export ARCH="amd64" @@ -35,7 +35,7 @@ steps: export ARCH="unknown" ;; esac - - >- + - |- export BUILDX_URL=$( \ wget -q -O - \ https://api.github.com/repos/docker/buildx/releases/latest \ @@ -49,11 +49,11 @@ steps: - docker version - docker buildx version - docker run --rm --privileged multiarch/qemu-user-static --reset -p yes - - >- + - |- echo -n $REGISTRY_PASS \ | docker login -u $REGISTRY_USER --password-stdin $REGISTRY_HOST - docker buildx create --name multiarch --use - - >- + - |- docker buildx build \ --platform linux/amd64,linux/arm64 \ --output=type=image,push=true \ From bd3b7d6451741707117ad8405f7454c79c8dff59 Mon Sep 17 00:00:00 2001 From: Michael Gibson Date: Fri, 4 Dec 2020 11:21:03 -0600 Subject: [PATCH 23/51] Restored trigger. --- .drone.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.drone.yml b/.drone.yml index 0d4bcce..2ae3904 100644 --- a/.drone.yml +++ b/.drone.yml @@ -7,6 +7,7 @@ environment: DOCKER_CLI_EXPERIMENTAL: enabled platform: + os: linux arch: amd64 services: @@ -58,6 +59,8 @@ steps: --platform linux/amd64,linux/arm64 \ --output=type=image,push=true \ --progress tty \ + --build-arg TAG=$DRONE_TAG + -t $REGISTRY_HOST/$IMAGE:$DRONE_TAG -t $REGISTRY_HOST/$IMAGE:latest \ . volumes: @@ -71,6 +74,6 @@ steps: REGISTRY_PASS: from_secret: registry_password -#trigger: -# event: -# - tag +trigger: + event: + - tag From 0e5464f5eee95b364243b3ba2747794eced5b782 Mon Sep 17 00:00:00 2001 From: Michael Gibson Date: Tue, 15 Dec 2020 03:11:11 -0600 Subject: [PATCH 24/51] Testing arm64. --- .drone.yml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/.drone.yml b/.drone.yml index 2ae3904..0a26a58 100644 --- a/.drone.yml +++ b/.drone.yml @@ -8,7 +8,7 @@ environment: platform: os: linux - arch: amd64 + arch: arm64 services: - name: dind @@ -31,6 +31,10 @@ steps: case $(uname -a) in *x86_64*) export ARCH="amd64" + docker run --rm --privileged multiarch/qemu-user-static --reset -p yes + ;; + *aarch64*) + export ARCH="arm64" ;; *) export ARCH="unknown" @@ -49,7 +53,6 @@ steps: - chmod a+x ~/.docker/cli-plugins/docker-buildx - docker version - docker buildx version - - docker run --rm --privileged multiarch/qemu-user-static --reset -p yes - |- echo -n $REGISTRY_PASS \ | docker login -u $REGISTRY_USER --password-stdin $REGISTRY_HOST @@ -74,6 +77,6 @@ steps: REGISTRY_PASS: from_secret: registry_password -trigger: - event: - - tag +#trigger: +# event: +# - tag From be258509145e80db065e3ea07af4d529f18c7d5e Mon Sep 17 00:00:00 2001 From: Michael Gibson Date: Tue, 15 Dec 2020 03:16:34 -0600 Subject: [PATCH 25/51] Fixed end of line. --- .drone.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.drone.yml b/.drone.yml index 0a26a58..a4f3f94 100644 --- a/.drone.yml +++ b/.drone.yml @@ -57,13 +57,14 @@ steps: echo -n $REGISTRY_PASS \ | docker login -u $REGISTRY_USER --password-stdin $REGISTRY_HOST - docker buildx create --name multiarch --use + - export DRONE_TAG=br-1.5.2 - |- docker buildx build \ --platform linux/amd64,linux/arm64 \ --output=type=image,push=true \ --progress tty \ - --build-arg TAG=$DRONE_TAG - -t $REGISTRY_HOST/$IMAGE:$DRONE_TAG + --build-arg TAG=$DRONE_TAG \ + -t $REGISTRY_HOST/$IMAGE:$DRONE_TAG \ -t $REGISTRY_HOST/$IMAGE:latest \ . volumes: From 7962016a4b72f9c6e1e860fda10c05401d50e508 Mon Sep 17 00:00:00 2001 From: Michael Gibson Date: Tue, 15 Dec 2020 03:42:27 -0600 Subject: [PATCH 26/51] Switched to exec runner. --- .drone.yml | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-) diff --git a/.drone.yml b/.drone.yml index a4f3f94..8be903d 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,6 +1,6 @@ --- kind: pipeline -type: docker +type: exec name: default environment: @@ -10,19 +10,6 @@ platform: os: linux arch: arm64 -services: - - name: dind - image: docker:dind - command: ["dockerd", "--experimental"] - privileged: true - volumes: - - name: docker_socket - path: /var/run - -volumes: - - name: docker_socket - temp: {} - steps: - name: build image: docker:latest @@ -67,9 +54,7 @@ steps: -t $REGISTRY_HOST/$IMAGE:$DRONE_TAG \ -t $REGISTRY_HOST/$IMAGE:latest \ . - volumes: - - name: docker_socket - path: /var/run + environment: IMAGE: protonmail-bridge REGISTRY_HOST: registry.thegibsonhome.net From 7f84bf5de2a8585bce59ea5db97570b1a0ccae16 Mon Sep 17 00:00:00 2001 From: Michael Gibson Date: Tue, 15 Dec 2020 03:43:20 -0600 Subject: [PATCH 27/51] Removed image. --- .drone.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.drone.yml b/.drone.yml index 8be903d..f1e7f27 100644 --- a/.drone.yml +++ b/.drone.yml @@ -12,7 +12,6 @@ platform: steps: - name: build - image: docker:latest commands: - |- case $(uname -a) in From fbeb4edbd8d2f4750a613e6ba59c538a46f675c2 Mon Sep 17 00:00:00 2001 From: Michael Gibson Date: Tue, 15 Dec 2020 03:52:49 -0600 Subject: [PATCH 28/51] Exec testing. --- .drone.yml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.drone.yml b/.drone.yml index f1e7f27..16c16e2 100644 --- a/.drone.yml +++ b/.drone.yml @@ -16,18 +16,17 @@ steps: - |- case $(uname -a) in *x86_64*) - export ARCH="amd64" - docker run --rm --privileged multiarch/qemu-user-static --reset -p yes + ARCH="amd64" ;; *aarch64*) - export ARCH="arm64" + ARCH="arm64" ;; *) - export ARCH="unknown" + ARCH="unknown" ;; esac - |- - export BUILDX_URL=$( \ + BUILDX_URL=$( \ wget -q -O - \ https://api.github.com/repos/docker/buildx/releases/latest \ | grep "browser_download_url.*linux-$ARCH" \ From bd98d7c0e0df7cd6cae306261e1c201bbe1906f6 Mon Sep 17 00:00:00 2001 From: Michael Gibson Date: Tue, 15 Dec 2020 04:02:09 -0600 Subject: [PATCH 29/51] Restored original amd64 .drone.yml. --- .drone.yml | 38 +++++++++++++++++++++++++++----------- 1 file changed, 27 insertions(+), 11 deletions(-) diff --git a/.drone.yml b/.drone.yml index 16c16e2..4e845bb 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,6 +1,6 @@ --- kind: pipeline -type: exec +type: docker name: default environment: @@ -8,25 +8,40 @@ environment: platform: os: linux - arch: arm64 + arch: amd64 + +services: + - name: dind + image: docker:dind + command: ["dockerd", "--experimental"] + privileged: true + volumes: + - name: docker_socket + path: /var/run + +volumes: + - name: docker_socket + temp: {} steps: - name: build + image: docker:latest commands: - |- case $(uname -a) in *x86_64*) - ARCH="amd64" + export ARCH="amd64" + docker run --rm --privileged multiarch/qemu-user-static --reset -p yes ;; *aarch64*) - ARCH="arm64" + export ARCH="arm64" ;; *) - ARCH="unknown" + export ARCH="unknown" ;; esac - |- - BUILDX_URL=$( \ + export BUILDX_URL=$( \ wget -q -O - \ https://api.github.com/repos/docker/buildx/releases/latest \ | grep "browser_download_url.*linux-$ARCH" \ @@ -42,7 +57,6 @@ steps: echo -n $REGISTRY_PASS \ | docker login -u $REGISTRY_USER --password-stdin $REGISTRY_HOST - docker buildx create --name multiarch --use - - export DRONE_TAG=br-1.5.2 - |- docker buildx build \ --platform linux/amd64,linux/arm64 \ @@ -52,7 +66,9 @@ steps: -t $REGISTRY_HOST/$IMAGE:$DRONE_TAG \ -t $REGISTRY_HOST/$IMAGE:latest \ . - + volumes: + - name: docker_socket + path: /var/run environment: IMAGE: protonmail-bridge REGISTRY_HOST: registry.thegibsonhome.net @@ -61,6 +77,6 @@ steps: REGISTRY_PASS: from_secret: registry_password -#trigger: -# event: -# - tag +trigger: + event: + - tag From 633f7e77ae31a6e0e0f6a771871b01adacb966f8 Mon Sep 17 00:00:00 2001 From: Michael Gibson Date: Wed, 23 Dec 2020 09:36:57 -0600 Subject: [PATCH 30/51] Changed from trigger to when. --- .drone.yml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.drone.yml b/.drone.yml index 4e845bb..8cc3460 100644 --- a/.drone.yml +++ b/.drone.yml @@ -76,7 +76,6 @@ steps: from_secret: registry_username REGISTRY_PASS: from_secret: registry_password - -trigger: - event: - - tag + when: + event: + - tag From 2d3885fedee870857e1dd95eaa618c6fd47ee33f Mon Sep 17 00:00:00 2001 From: Michael Gibson Date: Wed, 23 Dec 2020 11:11:26 -0600 Subject: [PATCH 31/51] Restored trigger. --- .drone.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.drone.yml b/.drone.yml index 8cc3460..cf155fa 100644 --- a/.drone.yml +++ b/.drone.yml @@ -76,6 +76,7 @@ steps: from_secret: registry_username REGISTRY_PASS: from_secret: registry_password - when: - event: - - tag + +trigger: + event: + - tag From d3aee1a6db3f203c84b7866c1b17283ebeb4dd6e Mon Sep 17 00:00:00 2001 From: Michael Gibson Date: Fri, 22 Jan 2021 14:26:55 -0600 Subject: [PATCH 32/51] Made CI/CD push step manual. --- .drone.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.drone.yml b/.drone.yml index cf155fa..39ea105 100644 --- a/.drone.yml +++ b/.drone.yml @@ -60,12 +60,14 @@ steps: - |- docker buildx build \ --platform linux/amd64,linux/arm64 \ - --output=type=image,push=true \ + --output=type=image,push=false \ --progress tty \ --build-arg TAG=$DRONE_TAG \ -t $REGISTRY_HOST/$IMAGE:$DRONE_TAG \ -t $REGISTRY_HOST/$IMAGE:latest \ . + - docker push $REGISTRY_HOST/$IMAGE:$DRONE_TAG + - docker push $REGISTRY_HOST/$IMAGE:latest volumes: - name: docker_socket path: /var/run From efd9a9cb962a1037c36542c38b313915d592a7e4 Mon Sep 17 00:00:00 2001 From: Michael Gibson Date: Fri, 22 Jan 2021 14:52:37 -0600 Subject: [PATCH 33/51] CI/CD testing with IPv6. --- .drone.yml | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/.drone.yml b/.drone.yml index 39ea105..7769f35 100644 --- a/.drone.yml +++ b/.drone.yml @@ -26,6 +26,8 @@ volumes: steps: - name: build image: docker:latest + settings: + ipv6: true commands: - |- case $(uname -a) in @@ -57,17 +59,23 @@ steps: echo -n $REGISTRY_PASS \ | docker login -u $REGISTRY_USER --password-stdin $REGISTRY_HOST - docker buildx create --name multiarch --use + #- |- + # docker buildx build \ + # --platform linux/amd64,linux/arm64 \ + # --output=type=image,push=true \ + # --progress tty \ + # --build-arg TAG=$DRONE_TAG \ + # -t $REGISTRY_HOST/$IMAGE:$DRONE_TAG \ + # -t $REGISTRY_HOST/$IMAGE:latest \ + # . - |- docker buildx build \ --platform linux/amd64,linux/arm64 \ - --output=type=image,push=false \ + --output=type=image,push=true \ --progress tty \ --build-arg TAG=$DRONE_TAG \ - -t $REGISTRY_HOST/$IMAGE:$DRONE_TAG \ -t $REGISTRY_HOST/$IMAGE:latest \ . - - docker push $REGISTRY_HOST/$IMAGE:$DRONE_TAG - - docker push $REGISTRY_HOST/$IMAGE:latest volumes: - name: docker_socket path: /var/run From 4600e81d6b9ee375587045791c24489e58932e66 Mon Sep 17 00:00:00 2001 From: Michael Gibson Date: Fri, 22 Jan 2021 14:52:59 -0600 Subject: [PATCH 34/51] Removed trigger. --- .drone.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.drone.yml b/.drone.yml index 7769f35..4d6df22 100644 --- a/.drone.yml +++ b/.drone.yml @@ -87,6 +87,6 @@ steps: REGISTRY_PASS: from_secret: registry_password -trigger: - event: - - tag +#trigger: +# event: +# - tag From 26b7e5c3ffc63f206bb8ead56242760b0e9d7cf8 Mon Sep 17 00:00:00 2001 From: Michael Gibson Date: Sun, 24 Jan 2021 19:12:37 -0600 Subject: [PATCH 35/51] Restored trigger. --- .drone.yml | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/.drone.yml b/.drone.yml index 4d6df22..cf155fa 100644 --- a/.drone.yml +++ b/.drone.yml @@ -26,8 +26,6 @@ volumes: steps: - name: build image: docker:latest - settings: - ipv6: true commands: - |- case $(uname -a) in @@ -59,21 +57,13 @@ steps: echo -n $REGISTRY_PASS \ | docker login -u $REGISTRY_USER --password-stdin $REGISTRY_HOST - docker buildx create --name multiarch --use - #- |- - # docker buildx build \ - # --platform linux/amd64,linux/arm64 \ - # --output=type=image,push=true \ - # --progress tty \ - # --build-arg TAG=$DRONE_TAG \ - # -t $REGISTRY_HOST/$IMAGE:$DRONE_TAG \ - # -t $REGISTRY_HOST/$IMAGE:latest \ - # . - |- docker buildx build \ --platform linux/amd64,linux/arm64 \ --output=type=image,push=true \ --progress tty \ --build-arg TAG=$DRONE_TAG \ + -t $REGISTRY_HOST/$IMAGE:$DRONE_TAG \ -t $REGISTRY_HOST/$IMAGE:latest \ . volumes: @@ -87,6 +77,6 @@ steps: REGISTRY_PASS: from_secret: registry_password -#trigger: -# event: -# - tag +trigger: + event: + - tag From 596ecffb83e0332d56720b873eecc70ae9c7b938 Mon Sep 17 00:00:00 2001 From: Michael Gibson Date: Mon, 25 Jan 2021 20:21:40 -0600 Subject: [PATCH 36/51] CI/CD/buildx testing. --- .drone.yml | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/.drone.yml b/.drone.yml index cf155fa..4bd61d9 100644 --- a/.drone.yml +++ b/.drone.yml @@ -57,13 +57,24 @@ steps: echo -n $REGISTRY_PASS \ | docker login -u $REGISTRY_USER --password-stdin $REGISTRY_HOST - docker buildx create --name multiarch --use +# - |- +# docker buildx build \ +# --allow network.host \ +# --network host \ +# --platform linux/amd64,linux/arm64 \ +# --output type=image,push=true \ +# --progress tty \ +# --build-arg TAG=$DRONE_TAG \ +# -t $REGISTRY_HOST/$IMAGE:$DRONE_TAG \ +# -t $REGISTRY_HOST/$IMAGE:latest \ +# . - |- docker buildx build \ + --allow network.host \ + --network host \ --platform linux/amd64,linux/arm64 \ - --output=type=image,push=true \ + --output type=image,push=true \ --progress tty \ - --build-arg TAG=$DRONE_TAG \ - -t $REGISTRY_HOST/$IMAGE:$DRONE_TAG \ -t $REGISTRY_HOST/$IMAGE:latest \ . volumes: @@ -77,6 +88,6 @@ steps: REGISTRY_PASS: from_secret: registry_password -trigger: - event: - - tag +#trigger: +# event: +# - tag From c192a4fbf3da6915c4ab8e02b78bed271654e964 Mon Sep 17 00:00:00 2001 From: Michael Gibson Date: Mon, 25 Jan 2021 20:25:33 -0600 Subject: [PATCH 37/51] Remove allow. --- .drone.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.drone.yml b/.drone.yml index 4bd61d9..f62d316 100644 --- a/.drone.yml +++ b/.drone.yml @@ -59,7 +59,6 @@ steps: - docker buildx create --name multiarch --use # - |- # docker buildx build \ -# --allow network.host \ # --network host \ # --platform linux/amd64,linux/arm64 \ # --output type=image,push=true \ @@ -70,7 +69,6 @@ steps: # . - |- docker buildx build \ - --allow network.host \ --network host \ --platform linux/amd64,linux/arm64 \ --output type=image,push=true \ From ebd10ab5b807e0b9216ffadb4e62aa442d18aac4 Mon Sep 17 00:00:00 2001 From: Michael Gibson Date: Mon, 25 Jan 2021 20:32:51 -0600 Subject: [PATCH 38/51] Force A record for registry. --- .drone.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.yml b/.drone.yml index f62d316..9999e53 100644 --- a/.drone.yml +++ b/.drone.yml @@ -69,7 +69,7 @@ steps: # . - |- docker buildx build \ - --network host \ + --add-host $REGISTRY_HOST:$(nslookup -type=a $REGISTRY_HOST | grep -v ':53' | grep 'Address:' | awk '{print $2}') \ --platform linux/amd64,linux/arm64 \ --output type=image,push=true \ --progress tty \ From ed65643608946e4cbd0cb722f99895282b8c8b68 Mon Sep 17 00:00:00 2001 From: Michael Gibson Date: Tue, 26 Jan 2021 07:21:16 -0600 Subject: [PATCH 39/51] Add IPv6 to DinD. --- .drone.yml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.drone.yml b/.drone.yml index 9999e53..3e07de0 100644 --- a/.drone.yml +++ b/.drone.yml @@ -13,7 +13,12 @@ platform: services: - name: dind image: docker:dind - command: ["dockerd", "--experimental"] + command: + - "dockerd" + - "--experimental" + - "--ipv6" + - "--ip6tables" + - "--fixed-cidr-v6=fd3a:3ea5:35c6:f876::/64" privileged: true volumes: - name: docker_socket @@ -59,7 +64,7 @@ steps: - docker buildx create --name multiarch --use # - |- # docker buildx build \ -# --network host \ +# --add-host $REGISTRY_HOST:$(nslookup -type=a $REGISTRY_HOST | grep -v ':53' | grep 'Address:' | awk '{print $2}') \ # --platform linux/amd64,linux/arm64 \ # --output type=image,push=true \ # --progress tty \ @@ -69,7 +74,6 @@ steps: # . - |- docker buildx build \ - --add-host $REGISTRY_HOST:$(nslookup -type=a $REGISTRY_HOST | grep -v ':53' | grep 'Address:' | awk '{print $2}') \ --platform linux/amd64,linux/arm64 \ --output type=image,push=true \ --progress tty \ From 7f55378a4d8ee63e394edd4713dce1e75a1c67db Mon Sep 17 00:00:00 2001 From: Michael Gibson Date: Tue, 26 Jan 2021 07:29:22 -0600 Subject: [PATCH 40/51] Removed ip6tables. --- .drone.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.drone.yml b/.drone.yml index 3e07de0..9bc5245 100644 --- a/.drone.yml +++ b/.drone.yml @@ -17,7 +17,6 @@ services: - "dockerd" - "--experimental" - "--ipv6" - - "--ip6tables" - "--fixed-cidr-v6=fd3a:3ea5:35c6:f876::/64" privileged: true volumes: From c575b8f86fde8940ac7e1da83e04fb2c4b2c87f1 Mon Sep 17 00:00:00 2001 From: Michael Gibson Date: Tue, 26 Jan 2021 07:52:09 -0600 Subject: [PATCH 41/51] Try manual push. --- .drone.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.drone.yml b/.drone.yml index 9bc5245..37f3ca9 100644 --- a/.drone.yml +++ b/.drone.yml @@ -74,10 +74,11 @@ steps: - |- docker buildx build \ --platform linux/amd64,linux/arm64 \ - --output type=image,push=true \ + --output type=docker \ --progress tty \ -t $REGISTRY_HOST/$IMAGE:latest \ . + - docker push $REGISTRY_HOST/$IMAGE:latest volumes: - name: docker_socket path: /var/run From 3c3e3e7727d78137f12d8cb08fbad65868314c40 Mon Sep 17 00:00:00 2001 From: Michael Gibson Date: Tue, 26 Jan 2021 12:13:50 -0600 Subject: [PATCH 42/51] Test exec runner. --- .drone.yml | 26 +++----------------------- 1 file changed, 3 insertions(+), 23 deletions(-) diff --git a/.drone.yml b/.drone.yml index 37f3ca9..7f0daf1 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,6 +1,6 @@ --- kind: pipeline -type: docker +type: exec name: default environment: @@ -10,26 +10,8 @@ platform: os: linux arch: amd64 -services: - - name: dind - image: docker:dind - command: - - "dockerd" - - "--experimental" - - "--ipv6" - - "--fixed-cidr-v6=fd3a:3ea5:35c6:f876::/64" - privileged: true - volumes: - - name: docker_socket - path: /var/run - -volumes: - - name: docker_socket - temp: {} - steps: - name: build - image: docker:latest commands: - |- case $(uname -a) in @@ -74,14 +56,12 @@ steps: - |- docker buildx build \ --platform linux/amd64,linux/arm64 \ - --output type=docker \ + --add-host $REGISTRY_HOST:192.168.128.20 \ + --output type=image,push=true \ --progress tty \ -t $REGISTRY_HOST/$IMAGE:latest \ . - docker push $REGISTRY_HOST/$IMAGE:latest - volumes: - - name: docker_socket - path: /var/run environment: IMAGE: protonmail-bridge REGISTRY_HOST: registry.thegibsonhome.net From bb980519e4017d0603627b4558d01dca75acaa08 Mon Sep 17 00:00:00 2001 From: Michael Gibson Date: Tue, 26 Jan 2021 12:17:12 -0600 Subject: [PATCH 43/51] Additional exec testing. --- .drone.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.drone.yml b/.drone.yml index 7f0daf1..520d66b 100644 --- a/.drone.yml +++ b/.drone.yml @@ -27,12 +27,12 @@ steps: ;; esac - |- - export BUILDX_URL=$( \ - wget -q -O - \ - https://api.github.com/repos/docker/buildx/releases/latest \ - | grep "browser_download_url.*linux-$ARCH" \ - | cut -d: -f2,3 \ - | tr -d \" \ + export BUILDX_URL=$( + wget -q -O - + https://api.github.com/repos/docker/buildx/releases/latest + | grep "browser_download_url.*linux-$ARCH" + | cut -d: -f2,3 + | tr -d \" ) - mkdir -p ~/.docker/cli-plugins - wget -O ~/.docker/cli-plugins/docker-buildx $BUILDX_URL From 219771ec52678a6e38327666fa1e22f05ab88ae4 Mon Sep 17 00:00:00 2001 From: Michael Gibson Date: Tue, 26 Jan 2021 12:18:39 -0600 Subject: [PATCH 44/51] Move to single line. --- .drone.yml | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/.drone.yml b/.drone.yml index 520d66b..e29d081 100644 --- a/.drone.yml +++ b/.drone.yml @@ -26,14 +26,7 @@ steps: export ARCH="unknown" ;; esac - - |- - export BUILDX_URL=$( - wget -q -O - - https://api.github.com/repos/docker/buildx/releases/latest - | grep "browser_download_url.*linux-$ARCH" - | cut -d: -f2,3 - | tr -d \" - ) + - export BUILDX_URL=$(wget -q -O - https://api.github.com/repos/docker/buildx/releases/latest | grep "browser_download_url.*linux-$ARCH" | cut -d: -f2,3 | tr -d \") - mkdir -p ~/.docker/cli-plugins - wget -O ~/.docker/cli-plugins/docker-buildx $BUILDX_URL - chmod a+x ~/.docker/cli-plugins/docker-buildx From ec399a94ec329e602f3bf1793b0ceb5ca5722f78 Mon Sep 17 00:00:00 2001 From: Michael Gibson Date: Tue, 26 Jan 2021 12:42:32 -0600 Subject: [PATCH 45/51] Changed BUILDX_URL line. --- .drone.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.yml b/.drone.yml index e29d081..9c5557c 100644 --- a/.drone.yml +++ b/.drone.yml @@ -26,7 +26,7 @@ steps: export ARCH="unknown" ;; esac - - export BUILDX_URL=$(wget -q -O - https://api.github.com/repos/docker/buildx/releases/latest | grep "browser_download_url.*linux-$ARCH" | cut -d: -f2,3 | tr -d \") + - 'export BUILDX_URL=`wget -q -O - https://api.github.com/repos/docker/buildx/releases/latest | grep "browser_download_url.*linux-$ARCH" | cut -d: -f2,3 | tr -d \"`' - mkdir -p ~/.docker/cli-plugins - wget -O ~/.docker/cli-plugins/docker-buildx $BUILDX_URL - chmod a+x ~/.docker/cli-plugins/docker-buildx From b32608abb36b08dcb34e0a92e3cd580c2521e980 Mon Sep 17 00:00:00 2001 From: Michael Gibson Date: Tue, 26 Jan 2021 12:45:08 -0600 Subject: [PATCH 46/51] Trim whitespace from BUILDX_URL. --- .drone.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.yml b/.drone.yml index 9c5557c..9c16508 100644 --- a/.drone.yml +++ b/.drone.yml @@ -26,7 +26,7 @@ steps: export ARCH="unknown" ;; esac - - 'export BUILDX_URL=`wget -q -O - https://api.github.com/repos/docker/buildx/releases/latest | grep "browser_download_url.*linux-$ARCH" | cut -d: -f2,3 | tr -d \"`' + - 'export BUILDX_URL=`wget -q -O - https://api.github.com/repos/docker/buildx/releases/latest | grep "browser_download_url.*linux-$ARCH" | cut -d: -f2,3 | tr -d \" | tr -d \ `' - mkdir -p ~/.docker/cli-plugins - wget -O ~/.docker/cli-plugins/docker-buildx $BUILDX_URL - chmod a+x ~/.docker/cli-plugins/docker-buildx From 26a1c6226cbe24df635b18d080c1667268da8842 Mon Sep 17 00:00:00 2001 From: Michael Gibson Date: Tue, 26 Jan 2021 12:59:25 -0600 Subject: [PATCH 47/51] Alternate YAML multiline. --- .drone.yml | 47 ++++++++++++++++++++++++++--------------------- 1 file changed, 26 insertions(+), 21 deletions(-) diff --git a/.drone.yml b/.drone.yml index 9c16508..1a3e06f 100644 --- a/.drone.yml +++ b/.drone.yml @@ -26,35 +26,40 @@ steps: export ARCH="unknown" ;; esac - - 'export BUILDX_URL=`wget -q -O - https://api.github.com/repos/docker/buildx/releases/latest | grep "browser_download_url.*linux-$ARCH" | cut -d: -f2,3 | tr -d \" | tr -d \ `' + - >- + export BUILDX_URL=$( + wget -q -O - https://api.github.com/repos/docker/buildx/releases/latest + | grep "browser_download_url.*linux-$ARCH" + | cut -d: -f2,3 + | tr -d \" + | tr -d \ + ) - mkdir -p ~/.docker/cli-plugins - wget -O ~/.docker/cli-plugins/docker-buildx $BUILDX_URL - chmod a+x ~/.docker/cli-plugins/docker-buildx - docker version - docker buildx version - - |- - echo -n $REGISTRY_PASS \ - | docker login -u $REGISTRY_USER --password-stdin $REGISTRY_HOST + - >- + echo -n $REGISTRY_PASS + | docker login -u $REGISTRY_USER --password-stdin $REGISTRY_HOST - docker buildx create --name multiarch --use -# - |- -# docker buildx build \ -# --add-host $REGISTRY_HOST:$(nslookup -type=a $REGISTRY_HOST | grep -v ':53' | grep 'Address:' | awk '{print $2}') \ -# --platform linux/amd64,linux/arm64 \ -# --output type=image,push=true \ -# --progress tty \ -# --build-arg TAG=$DRONE_TAG \ -# -t $REGISTRY_HOST/$IMAGE:$DRONE_TAG \ -# -t $REGISTRY_HOST/$IMAGE:latest \ +# - >- +# docker buildx build +# --add-host $REGISTRY_HOST:$(nslookup -type=a $REGISTRY_HOST | grep -v ':53' | grep 'Address:' | awk '{print $2}') +# --platform linux/amd64,linux/arm64 +# --output type=image,push=true +# --progress tty +# --build-arg TAG=$DRONE_TAG +# -t $REGISTRY_HOST/$IMAGE:$DRONE_TAG +# -t $REGISTRY_HOST/$IMAGE:latest # . - - |- - docker buildx build \ - --platform linux/amd64,linux/arm64 \ - --add-host $REGISTRY_HOST:192.168.128.20 \ - --output type=image,push=true \ - --progress tty \ - -t $REGISTRY_HOST/$IMAGE:latest \ + - >- + docker buildx build + --platform linux/amd64,linux/arm64 + --output type=image,push=true + --progress tty + -t $REGISTRY_HOST/$IMAGE:latest . - - docker push $REGISTRY_HOST/$IMAGE:latest environment: IMAGE: protonmail-bridge REGISTRY_HOST: registry.thegibsonhome.net From 49f5f6be59af5103931827b6c120ea954a99f7d0 Mon Sep 17 00:00:00 2001 From: Michael Gibson Date: Tue, 26 Jan 2021 13:01:40 -0600 Subject: [PATCH 48/51] Back to original multiline. --- .drone.yml | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/.drone.yml b/.drone.yml index 1a3e06f..42181f3 100644 --- a/.drone.yml +++ b/.drone.yml @@ -26,21 +26,21 @@ steps: export ARCH="unknown" ;; esac - - >- - export BUILDX_URL=$( - wget -q -O - https://api.github.com/repos/docker/buildx/releases/latest - | grep "browser_download_url.*linux-$ARCH" - | cut -d: -f2,3 - | tr -d \" - | tr -d \ + - |- + export BUILDX_URL=$(\ + wget -q -O - https://api.github.com/repos/docker/buildx/releases/latest\ + | grep "browser_download_url.*linux-$ARCH"\ + | cut -d: -f2,3\ + | tr -d \"\ + | tr -d \ \ ) - mkdir -p ~/.docker/cli-plugins - wget -O ~/.docker/cli-plugins/docker-buildx $BUILDX_URL - chmod a+x ~/.docker/cli-plugins/docker-buildx - docker version - docker buildx version - - >- - echo -n $REGISTRY_PASS + - |- + echo -n $REGISTRY_PASS\ | docker login -u $REGISTRY_USER --password-stdin $REGISTRY_HOST - docker buildx create --name multiarch --use # - >- @@ -53,12 +53,12 @@ steps: # -t $REGISTRY_HOST/$IMAGE:$DRONE_TAG # -t $REGISTRY_HOST/$IMAGE:latest # . - - >- - docker buildx build - --platform linux/amd64,linux/arm64 - --output type=image,push=true - --progress tty - -t $REGISTRY_HOST/$IMAGE:latest + - |- + docker buildx build\ + --platform linux/amd64,linux/arm64\ + --output type=image,push=true\ + --progress tty\ + -t $REGISTRY_HOST/$IMAGE:latest\ . environment: IMAGE: protonmail-bridge From 862d2bf49a147546025cda55975acf62eac42035 Mon Sep 17 00:00:00 2001 From: Michael Gibson Date: Tue, 26 Jan 2021 13:04:19 -0600 Subject: [PATCH 49/51] Restore trigger. --- .drone.yml | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/.drone.yml b/.drone.yml index 42181f3..b113e6b 100644 --- a/.drone.yml +++ b/.drone.yml @@ -43,21 +43,14 @@ steps: echo -n $REGISTRY_PASS\ | docker login -u $REGISTRY_USER --password-stdin $REGISTRY_HOST - docker buildx create --name multiarch --use -# - >- -# docker buildx build -# --add-host $REGISTRY_HOST:$(nslookup -type=a $REGISTRY_HOST | grep -v ':53' | grep 'Address:' | awk '{print $2}') -# --platform linux/amd64,linux/arm64 -# --output type=image,push=true -# --progress tty -# --build-arg TAG=$DRONE_TAG -# -t $REGISTRY_HOST/$IMAGE:$DRONE_TAG -# -t $REGISTRY_HOST/$IMAGE:latest -# . - |- docker buildx build\ + --no-cache\ --platform linux/amd64,linux/arm64\ --output type=image,push=true\ --progress tty\ + --build-arg TAG=$DRONE_TAG\ + -t $REGISTRY_HOST/$IMAGE:$DRONE_TAG\ -t $REGISTRY_HOST/$IMAGE:latest\ . environment: @@ -68,6 +61,6 @@ steps: REGISTRY_PASS: from_secret: registry_password -#trigger: -# event: -# - tag +trigger: + event: + - tag From 9d5ead578d94f29299d8f938f98f98631a66ac27 Mon Sep 17 00:00:00 2001 From: Michael Gibson Date: Mon, 8 Mar 2021 10:18:56 -0600 Subject: [PATCH 50/51] Updated Dockerfile to add bash. --- Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 90244d7..d1d4476 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,8 @@ # Build the ProtonMail Bridge. -FROM golang:1.15-alpine as build +FROM golang:1.16-alpine as build ENV LANG C.UTF-8 RUN apk add --no-cache \ + bash \ curl \ gcc \ git \ From 6db0b9271c3da5a7560f013314b1c984b1e5bed9 Mon Sep 17 00:00:00 2001 From: Michael Gibson Date: Thu, 2 Feb 2023 07:48:00 -0600 Subject: [PATCH 51/51] Update for bridge 3.0.x. --- Dockerfile | 47 ++++++++++++++++++++++++++++------------------- entrypoint | 7 +++---- initproton | 13 +++++++++++-- 3 files changed, 42 insertions(+), 25 deletions(-) diff --git a/Dockerfile b/Dockerfile index d1d4476..50d0f0c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,23 +1,27 @@ # Build the ProtonMail Bridge. -FROM golang:1.16-alpine as build +FROM golang:1.18-buster as build ENV LANG C.UTF-8 -RUN apk add --no-cache \ - bash \ - curl \ - gcc \ - git \ - libsecret-dev \ - make \ - musl-dev -WORKDIR /usr/src +# Install required build packages +RUN apt-get update \ + && apt-get install -y \ + bash \ + build-essential \ + curl \ + git \ + libsecret-1-dev \ + musl-dev + +# Download/build the application +WORKDIR /usr/src ARG RELEASE ARG TAG RUN if [ -n "$RELEASE" ]; then \ echo "Using release $RELEASE..." \ && curl -L -s "https://github.com/ProtonMail/proton-bridge/archive/$RELEASE.tar.gz" | tar zx \ - && ln -s "proton-bridge-$RELEASE" proton-bridge \ - && cd proton-bridge \ + && export PROTON_BRIDGE="proton-bridge-$(echo $RELEASE | sed -e 's/^\(v\|br\)//')" \ + && ln -s "${PROTON_BRIDGE}" proton-bridge \ + && cd "${PROTON_BRIDGE}" \ ; else \ git clone https://github.com/ProtonMail/proton-bridge.git proton-bridge \ && cd proton-bridge \ @@ -26,21 +30,26 @@ RUN if [ -n "$RELEASE" ]; then \ && make build-nogui # Create a container for the ProtonMail Bridge. -FROM alpine:edge +FROM debian:stable ENV LANG C.UTF-8 EXPOSE 25/tcp EXPOSE 143/tcp COPY --from=build /usr/src/proton-bridge/proton-bridge /bin/proton-bridge +COPY --from=build /usr/src/proton-bridge/bridge /bin/bridge COPY entrypoint /bin/ COPY initproton /bin/ -RUN apk add --no-cache \ - libsecret \ - pass \ - socat \ - su-exec \ - && chmod +x /bin/entrypoint \ +RUN apt-get update\ + && apt-get install -y --no-install-recommends --no-install-suggests\ + libcap2\ + libsecret-1-0\ + gosu\ + gpg-agent\ + pass\ + socat\ + && rm -rf /var/lib/apt/lists/*\ + && chmod +x /bin/entrypoint\ && chmod +x /bin/initproton WORKDIR /var/lib/proton diff --git a/entrypoint b/entrypoint index 3390d06..884d393 100755 --- a/entrypoint +++ b/entrypoint @@ -9,13 +9,11 @@ GROUP=proton if getent group $GROUP_ID > /dev/null; then echo "Using group $GROUP with GID $GROUP_ID..." GROUP=$(getent group $GROUP_ID | cut -d: -f1) - echo "Using group $GROUP with GID $GROUP_ID..." else echo "Adding group $GROUP with GID $GROUP_ID..." addgroup -g $GROUP_ID $GROUP fi -echo "Adding user proton with group $GROUP..." -echo adduser -D -u $USER_ID -G $GROUP -h /var/lib/proton -s /bin/sh proton +echo "Adding user proton ($USER_ID) with group $GROUP ${GROUP_ID}..." adduser -D -u $USER_ID -G $GROUP -h /var/lib/proton -s /bin/sh proton chown -R ${USER_ID}:${GROUP_ID} /var/lib/proton export HOME=/var/lib/proton @@ -27,4 +25,5 @@ setcap 'cap_net_bind_service=+ep' /usr/bin/socat socat TCP-LISTEN:25,fork TCP:127.0.0.1:1025 & socat TCP-LISTEN:143,fork TCP:127.0.0.1:1143 & -exec /sbin/su-exec proton "$@" +echo "Starting ProtonMail Bridge..." +exec /usr/sbin/gosu proton "$@" diff --git a/initproton b/initproton index aa1f305..703ebe6 100755 --- a/initproton +++ b/initproton @@ -1,7 +1,7 @@ -#!/bin/bash +#!/bin/bash set -eufo pipefail -BRIDGE=/bin/proton-bridge +BRIDGE=/bin/bridge FIFO=/tmp/fifo PRINT_INFO=${PRINT_INFO:-""} @@ -11,14 +11,20 @@ if [ -n "$PASS_FILE" ]; then PASS=$(cat $PASS_FILE) fi +echo "Checking for GPG configuration..." if ! [ -d .gnupg ]; then + echo "Generating GPG Key..." echo -e "%no-protection\nKey-Type: RSA\nKey-Length: 4096\nName-Real: $EMAIL\nExpire-Date: 0\n%commit" \ | gpg --generate-key --batch fi +echo "Checking for Password Store..." if ! [ -d .password-store ]; then + echo "Initializing Pass..." pass init "$EMAIL" fi +echo "Checking for ProtonMail Bridge Cache..." if ! [ -d ~/.cache/protonmail/bridge ]; then + echo "Logging in to ProtonMail Bridge..." COMMAND="login\n$EMAIL\n$PASSWORD" MFA_CODE=${MFA_CODE:-} if [ -n "$MFA_CODE" ]; then @@ -28,6 +34,7 @@ if ! [ -d ~/.cache/protonmail/bridge ]; then fi if [ -n "$PRINT_INFO" ]; then + echo "Printing Info..." echo info | $BRIDGE --cli | egrep '(Username|Password)' | sort -ru fi @@ -37,4 +44,6 @@ if [ -n "$LOG_LEVEL" ]; then ARGUMENTS="${ARGUMENTS} --log-level ${LOG_LEVEL}" fi +echo "Starting ProtonMail Bridge: $BRIDGE $ARGUMENTS" +$BRIDGE --version $BRIDGE $ARGUMENTS