Dockerfile 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  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 su-exec
  12. COPY --from=builder /go/src/github.com/syncthing/syncthing/syncthing /bin/syncthing
  13. ENV STNOUPGRADE=1 PUSR=syncthing PUID=1000 PGRP=syncthing PGID=1000
  14. HEALTHCHECK --interval=1m --timeout=10s \
  15. CMD nc -z localhost 8384 || exit 1
  16. ENTRYPOINT true \
  17. && ( getent group "${PGRP}" >/dev/null \
  18. || addgroup \
  19. -g "${PGID}" \
  20. "${PGRP}" \
  21. ) \
  22. && ( getent passwd "${PUSR}" >/dev/null \
  23. || adduser \
  24. -h /var/syncthing \
  25. -G "${PGRP}" \
  26. -u "${PUID}" \
  27. "${PUSR}" \
  28. ) \
  29. && chown "${PUSR}:${PGRP}" /var/syncthing \
  30. && su-exec "${PUSR}:${PGRP}" \
  31. /bin/syncthing \
  32. -home /var/syncthing/config \
  33. -gui-address 0.0.0.0:8384 \
  34. && true