diff --git a/deb/Dockerfile b/deb/Dockerfile index ddebcac..3d20b17 100644 --- a/deb/Dockerfile +++ b/deb/Dockerfile @@ -1,9 +1,13 @@ -FROM debian:sid-slim +FROM ubuntu:jammy LABEL maintainer="Xiaonan Shen " +# These are only exported if running as root EXPOSE 25/tcp EXPOSE 143/tcp +EXPOSE 2025/tcp +EXPOSE 2143/tcp + WORKDIR /protonmail # Copy bash scripts diff --git a/deb/entrypoint.sh b/deb/entrypoint.sh index 13637e5..241f32f 100644 --- a/deb/entrypoint.sh +++ b/deb/entrypoint.sh @@ -30,20 +30,25 @@ if [[ $1 == init ]]; then pass init pass-key # Login - protonmail-bridge --cli + protonmail-bridge --cli $@ else + # delete lock files if they exist - this can happen if the container is restarted forcefully + find $HOME -name "*.lock" -delete + # socat will make the conn appear to come from 127.0.0.1 # ProtonMail Bridge currently expects that. # It also allows us to bind to the real ports :) - socat TCP-LISTEN:25,fork TCP:127.0.0.1:1025 & - socat TCP-LISTEN:143,fork TCP:127.0.0.1:1143 & + if [[ $(id -u) == 0 ]]; then + socat TCP-LISTEN:25,fork TCP:127.0.0.1:1025 & + socat TCP-LISTEN:143,fork TCP:127.0.0.1:1143 & + fi + + socat TCP-LISTEN:2025,fork TCP:127.0.0.1:1025 & + socat TCP-LISTEN:2143,fork TCP:127.0.0.1:1143 & # Start protonmail - # Fake a terminal, so it does not quit because of EOF... - rm -f faketty - mkfifo faketty - cat faketty | protonmail-bridge --cli + /protonmail/proton-bridge --noninteractive $@ fi