diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..12730ae --- /dev/null +++ b/.dockerignore @@ -0,0 +1,6 @@ +* + +!.dockerignore +!*.sh +!gpgparams +!Dockerfile diff --git a/.gitignore b/.gitignore index b44ec7b..6a63f0a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,9 @@ * !.gitignore +!.dockerignore !LICENSE !README.md !*.sh !gpgparams -!Dockerfile \ No newline at end of file +!Dockerfile diff --git a/Dockerfile b/Dockerfile index 6f315a6..ed56227 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,26 +1,20 @@ +FROM debian:buster-slim AS setup + +COPY setup.sh /bin/ +RUN bash /bin/setup.sh + + FROM debian:buster-slim LABEL maintainer="Xiaonan Shen " EXPOSE 25/tcp EXPOSE 143/tcp -ENV DEB_URL https://protonmail.com/download/protonmail-bridge_1.2.6-1_amd64.deb -WORKDIR /root # Copy gpg parameters and .deb installer -COPY gpgparams /protonmail/ +COPY gpgparams install.sh entrypoint.sh /protonmail/ +COPY --from=setup /protonmail/protonmail.deb /protonmail/ # Install dependencies and protonmail bridge -RUN apt-get update \ - && apt-get install -y --no-install-recommends socat pass \ - && apt-get install -y wget \ - && wget -O /protonmail/protonmail.deb ${DEB_URL} \ - && apt-get install -y --no-install-recommends /protonmail/protonmail.deb \ - && apt-get purge -y wget \ - && apt-get autoremove -y \ - && rm -rf /var/lib/apt/lists/* \ - && rm /protonmail/protonmail.deb +RUN bash /protonmail/install.sh -COPY entrypoint.sh /bin/ -RUN chmod +x /bin/entrypoint.sh - -ENTRYPOINT ["/bin/entrypoint.sh"] +ENTRYPOINT ["bash", "/protonmail/entrypoint.sh"] diff --git a/install.sh b/install.sh new file mode 100644 index 0000000..c008769 --- /dev/null +++ b/install.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +set -x + +# Install dependents +# libgl1-mesa-glx is installed since the bridge requires libgl and we removed the qt dependencies +apt-get update +apt-get install -y --no-install-recommends socat pass libgl1-mesa-glx + +# Install protonmail bridge +apt-get install -y --no-install-recommends /protonmail/protonmail.deb + +# Cleanup +rm -rf /var/lib/apt/lists/* +rm /protonmail/protonmail.deb diff --git a/setup.sh b/setup.sh new file mode 100644 index 0000000..635e54f --- /dev/null +++ b/setup.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +set -x + +DEB_URL=https://protonmail.com/download/protonmail-bridge_1.2.6-1_amd64.deb + +# Install tools +apt-get update +apt-get install -y wget binutils xz-utils + +# Download deb +mkdir /protonmail +cd /protonmail +wget -O /protonmail/protonmail.deb ${DEB_URL} + +# Remove unnecessary dependencies +ar x -v protonmail.deb +mkdir control +tar xvfJ control.tar.xz -C control +cd control +sed -i "s/^Depends: .*$/Depends: libsecret-1-0/" control +tar cvfJ ../control.tar.xz . +cd ../ +ar rcs -v protonmail.deb debian-binary control.tar.xz data.tar.xz