docker: Add configurable UID and GID (#5041)

Allows for configuring the UID and GID Syncthing runs as in the container. Uses su-exec from the Alpine repos to accomplish this. Addition of su-exec results in <2MB increase in image size.
This commit is contained in:
Andrew Rabert 2018-07-04 02:42:29 -04:00 committed by Jakob Borg
parent 0b73a66516
commit 5bb72dfe5d
2 changed files with 8 additions and 8 deletions

View File

@ -18,15 +18,15 @@ RUN apk add --no-cache ca-certificates
COPY --from=builder /go/src/github.com/syncthing/syncthing/syncthing /bin/syncthing
RUN echo 'syncthing:x:1000:1000::/var/syncthing:/sbin/nologin' >> /etc/passwd \
&& echo 'syncthing:!::0:::::' >> /etc/shadow \
&& chown syncthing /var/syncthing
RUN apk update \
&& apk add su-exec
USER syncthing
ENV STNOUPGRADE=1
ENV PUID=1000
ENV PGID=1000
HEALTHCHECK --interval=1m --timeout=10s \
CMD nc -z localhost 8384 || exit 1
ENTRYPOINT ["/bin/syncthing", "-home", "/var/syncthing/config", "-gui-address", "0.0.0.0:8384"]
ENTRYPOINT chown $PUID:$PGID /var/syncthing \
&& su-exec $PUID:$PGID /bin/syncthing -home /var/syncthing/config -gui-address 0.0.0.0:8384

View File

@ -11,8 +11,8 @@ The exposed volumes are by default:
You can add more folders and map them as you prefer.
Note that Syncthing runs as UID 1000 in the container. This UID must have
permission to read and modify the files in the containers.
Note that Syncthing runs as UID 1000 and GID 1000 by default. These may be
altered with the ``PUID`` and ``PGID`` environment variables.
Example usage: