Skip to content

Commit

Permalink
Minor update
Browse files Browse the repository at this point in the history
- Remove useless configuration.
- Docker container running as root user, the program running as nobody user
  • Loading branch information
vndroid authored and zonyitoo committed Jun 29, 2022
1 parent 59e80ff commit 7ce6945
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 35 deletions.
24 changes: 10 additions & 14 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM --platform=$BUILDPLATFORM rust:1.53.0-buster AS build
FROM --platform=$BUILDPLATFORM rust:1.53.0-buster AS builder

ARG TARGETARCH

Expand Down Expand Up @@ -35,22 +35,18 @@ RUN rustup install nightly && rustup default nightly && \

FROM alpine:3.14 AS sslocal

COPY --from=build /root/shadowsocks-rust/target/release/sslocal /usr/bin
COPY --from=build /root/shadowsocks-rust/examples/config.json /etc/shadowsocks-rust/
COPY --from=build /root/shadowsocks-rust/docker/docker-entrypoint.sh /
COPY --from=builder /root/shadowsocks-rust/target/release/sslocal /usr/local/bin/
COPY --from=builder /root/shadowsocks-rust/examples/config.json /etc/shadowsocks-rust/
COPY --from=builder /root/shadowsocks-rust/docker/docker-entrypoint.sh /usr/local/bin/

USER nobody

ENTRYPOINT [ "/docker-entrypoint.sh" ]
ENTRYPOINT [ "docker-entrypoint.sh" ]
CMD [ "sslocal", "--log-without-time", "-c", "/etc/shadowsocks-rust/config.json" ]

FROM alpine:3.14 AS ssserver

COPY --from=build /root/shadowsocks-rust/target/release/ssserver /usr/bin
COPY --from=build /root/shadowsocks-rust/examples/config.json /etc/shadowsocks-rust/
COPY --from=build /root/shadowsocks-rust/docker/docker-entrypoint.sh /

USER nobody
COPY --from=builder /root/shadowsocks-rust/target/release/ssserver /usr/local/bin/
COPY --from=builder /root/shadowsocks-rust/examples/config.json /etc/shadowsocks-rust/
COPY --from=builder /root/shadowsocks-rust/docker/docker-entrypoint.sh /usr/local/bin/

ENTRYPOINT [ "/docker-entrypoint.sh" ]
CMD [ "ssserver", "--log-without-time", "-c", "/etc/shadowsocks-rust/config.json" ]
ENTRYPOINT [ "docker-entrypoint.sh" ]
CMD [ "ssserver", "--log-without-time", "-a", "nobody", "-c", "/etc/shadowsocks-rust/config.json" ]
24 changes: 3 additions & 21 deletions docker/docker-entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,29 +10,11 @@ else
fi

if [ "$1" = "sslocal" -o "$1" = "ssserver" -o "$1" = "ssmanager" -o "$1" = "ssservice" ]; then
if /usr/bin/find "/docker-entrypoint.d/" -mindepth 1 -maxdepth 1 -type f -print -quit 2>/dev/null | read v; then
echo >&3 "$0: /docker-entrypoint.d/ is not empty, will attempt to perform configuration"

echo >&3 "$0: Looking for shell scripts in /docker-entrypoint.d/"
find "/docker-entrypoint.d/" -follow -type f -print | sort -V | while read -r f; do
case "$f" in
*.sh)
if [ -x "$f" ]; then
echo >&3 "$0: Launching $f";
"$f"
else
# warn on shell scripts without exec bit
echo >&3 "$0: Ignoring $f, not executable";
fi
;;
*) echo >&3 "$0: Ignoring $f";;
esac
done

if [ -f "/etc/shadowsocks-rust/config.json" ]; then
echo >&3 "$0: Configuration complete; ready for start up"
else
echo >&3 "$0: No files found in /docker-entrypoint.d/, skipping configuration"
echo >&3 "$0: No configuration files found in /etc/shadowsocks-rust, skipping configuration"
fi
fi

exec "$@"
exec "$@"

0 comments on commit 7ce6945

Please sign in to comment.