From 566735cf7488aadd107f15358499ee96739ed28b Mon Sep 17 00:00:00 2001 From: Xiaonan Shen Date: Tue, 14 Apr 2020 22:31:20 -0700 Subject: [PATCH] Remove unnecessary dependencies --- .dockerignore | 6 ++++++ .gitignore | 3 ++- Dockerfile | 26 ++++++++++---------------- install.sh | 15 +++++++++++++++ setup.sh | 24 ++++++++++++++++++++++++ 5 files changed, 57 insertions(+), 17 deletions(-) create mode 100644 .dockerignore create mode 100644 install.sh create mode 100644 setup.sh 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