diff --git a/Dockerfile b/Dockerfile index bcadc16..3d989b4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -29,13 +29,12 @@ RUN TARGET_PALTFORMS=${TARGETS:-"$BUILDOS/$BUILDARCH"} && mv ${BINARY} /go/psiphon_${OS}_${ARCH}_${TARGETVARIANT}; \ done) -FROM alpine:3.16.0 -RUN mkdir -p /psiphon /config +FROM swarupsengupta2007/alpine-s6:3.16.0 ARG TARGETOS ARG TARGETARCH ARG TARGETVARIANT -COPY start_psiphon psiphon.config /psiphon/ -COPY --from=psiphon_builder /go/psiphon_${TARGETOS}_${TARGETARCH}_${TARGETVARIANT} /psiphon/psiphon +COPY base/ / +COPY psiphon.config ${DEF_DEFAULTS} +COPY --from=psiphon_builder /go/psiphon_${TARGETOS}_${TARGETARCH}_${TARGETVARIANT} ${DEF_APP}/psiphon EXPOSE 8080 1080 VOLUME /config -CMD ["/bin/sh", "/psiphon/start_psiphon"] diff --git a/README.md b/README.md index 55075f0..00ed730 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,8 @@ This docker image runs the ConsoleClient from the [psiphon-tunnel-core](https:// This build uses `docker buildx` plugin with `docker-container` driver. +This is built on base image from [swarupsengupta2007/apine-s6-docker](https://github.com/swarupsengupta2007/alpine-s6-docker "swarupsengupta2007/apine-s6-docker") + ```bash # Clone this repo git clone https://github.com/swarupsengupta2007/psiphon-docker diff --git a/base/etc/services.d/psiphon/run b/base/etc/services.d/psiphon/run new file mode 100755 index 0000000..2816ed8 --- /dev/null +++ b/base/etc/services.d/psiphon/run @@ -0,0 +1,6 @@ +#!/usr/bin/with-contenv sh + +[[ ! -f ${DEF_CONFIG}/psiphon.config ]] && cp ${DEF_DEFAULTS}/psiphon.config ${DEF_CONFIG}/ +[[ ! -d ${DEF_CONFIG}/osl ]] && mkdir ${DEF_CONFIG}/osl +[[ ! -d ${DEF_CONFIG}/remote_server_list ]] && mkdir ${DEF_CONFIG}/remote_server_list +exec s6-setuidgid ${DEF_USER} ${DEF_APP}/psiphon -config ${DEF_CONFIG}/psiphon.config diff --git a/start_psiphon b/start_psiphon deleted file mode 100644 index aa04d1d..0000000 --- a/start_psiphon +++ /dev/null @@ -1,17 +0,0 @@ -#/bin/sh - -export EUID=${PUID:-1000} -export EGID=${PGID:-1000} -if id psi > /dev/null -then - addgroup -g $EGID psi - adduser -u $EUID -G psi -D -H psi -fi - -[[ ! -f /config/psiphon.config ]] && cp /psiphon/psiphon.config /config/ -[[ ! -d /config/osl ]] && mkdir /config/osl -[[ ! -d /config/remote_server_list ]] && mkdir /config/remote_server_list - -chown -R psi:psi /config/ - -exec /psiphon/psiphon -config /config/psiphon.config