Dockerfile 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. FROM golang:1.10 AS builder
  2. WORKDIR /go/src/github.com/syncthing/syncthing
  3. COPY . .
  4. ENV CGO_ENABLED=0
  5. ENV BUILD_HOST=syncthing.net
  6. ENV BUILD_USER=docker
  7. RUN rm -f syncthing && go run build.go build syncthing
  8. FROM alpine
  9. EXPOSE 8384 22000 21027/udp
  10. VOLUME ["/var/syncthing"]
  11. RUN apk add --no-cache ca-certificates
  12. COPY --from=builder /go/src/github.com/syncthing/syncthing/syncthing /bin/syncthing
  13. RUN apk add --no-cache su-exec
  14. ENV STNOUPGRADE=1
  15. ENV PUSR=syncthing
  16. ENV PUID=1000
  17. ENV PGRP=syncthing
  18. ENV PGID=1000
  19. HEALTHCHECK --interval=1m --timeout=10s \
  20. CMD nc -z localhost 8384 || exit 1
  21. ENTRYPOINT true \
  22. && ( getent group "${PGRP}" >/dev/null \
  23. || addgroup \
  24. -g "${PGID}" \
  25. "${PGRP}" \
  26. ) \
  27. && ( getent passwd "${PUSR}" >/dev/null \
  28. || adduser \
  29. -h /var/syncthing \
  30. -G "${PGRP}" \
  31. -u "${PUID}" \
  32. "${PUSR}" \
  33. ) \
  34. && chown "${PUSR}:${PGRP}" /var/syncthing \
  35. && su-exec "${PUSR}:${PGRP}" \
  36. /bin/syncthing \
  37. -home /var/syncthing/config \
  38. -gui-address 0.0.0.0:8384 \
  39. && true