build: gpg-agent run fix & automated login process

The gpg-agent could not start if the /root is mounted by docker when
the external path is long enough, a workaround is to use a different
GNUPGHOME for gpg key generation, and copy generated files to
/root/.gnupg afterwards

bonus: thanks to expect, we can a automated login process, if both
PROTONMAIL_USERNAME and PROTONMAIL_PASSWORD are set

Signed-off-by: Jeffrey Stoke <me@arhat.dev>
This commit is contained in:
Jeffrey Stoke
2021-06-14 22:38:44 +02:00
parent 8fa301b5a3
commit da0dfab9d3
6 changed files with 112 additions and 18 deletions

View File

@@ -1,4 +1,4 @@
FROM golang:1.13 AS build
FROM golang:1.16 AS build
# Install dependencies
RUN apt-get update && apt-get install -y libsecret-1-dev
@@ -16,13 +16,16 @@ EXPOSE 143/tcp
# Install dependencies and protonmail bridge
RUN apt-get update \
&& apt-get install -y --no-install-recommends socat pass libsecret-1-0 ca-certificates \
&& apt-get install -y --no-install-recommends \
expect socat pass libsecret-1-0 ca-certificates \
&& rm -rf /var/lib/apt/lists/*
# Copy bash scripts
COPY gpgparams entrypoint.sh /protonmail/
# Copy protonmail
COPY --from=build /build/proton-bridge/proton-bridge /protonmail/
# Copy bash scripts
COPY gpgparams entrypoint.sh login.exp /protonmail/
RUN chmod +x /protonmail/login.exp
ENTRYPOINT ["bash", "/protonmail/entrypoint.sh"]