Dockerfile 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. FROM syncthing/discosrv:1.30.0 AS discosrvbin
  2. FROM syncthing/relaysrv:1.30.0 AS relaysrvbin
  3. FROM alpine:3.22
  4. ARG S6_VER=3.2.1.0
  5. ENV UID=1000
  6. ENV GID=1000
  7. ENV ENABLE_STDISCOSRV=true
  8. ENV ENABLE_STRELAYSRV=true
  9. ENV GLOBAL_RATE=100000000
  10. ENV PER_SESSION_RATE=10000000
  11. ENV MESSAGE_TIMEOUT=1m30s
  12. ENV NETWORK_TIMEOUT=3m0s
  13. ENV PING_INTERVAL=1m30s
  14. ENV PROVIDED_BY=strelaysrv
  15. ENV POOLS=
  16. ENV DISCO_OTHER_OPTION=
  17. ENV RELAY_OTHER_OPTION=
  18. ENV S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0
  19. COPY --chmod=755 root /
  20. COPY --from=discosrvbin --chmod=755 /bin/stdiscosrv /usr/local/bin/stdiscosrv
  21. COPY --from=relaysrvbin --chmod=755 /bin/strelaysrv /usr/local/bin/strelaysrv
  22. RUN apk add --no-cache bash shadow ca-certificates \
  23. #create stsrv user
  24. && useradd -u 1000 -U -d /config -s /bin/false stsrv \
  25. && usermod -G users stsrv \
  26. # install s6-overlay
  27. && if [ "$(uname -m)" = "x86_64" ];then s6_arch=x86_64;elif [ "$(uname -m)" = "aarch64" ];then s6_arch=aarch64;elif [ "$(uname -m)" = "armv7l" ];then s6_arch=arm; fi \
  28. && wget -P /tmp https://github.com/just-containers/s6-overlay/releases/download/v${S6_VER}/s6-overlay-noarch.tar.xz \
  29. && tar -C / -Jxpf /tmp/s6-overlay-noarch.tar.xz \
  30. && wget -P /tmp https://github.com/just-containers/s6-overlay/releases/download/v${S6_VER}/s6-overlay-${s6_arch}.tar.xz \
  31. && tar -C / -Jxpf /tmp/s6-overlay-${s6_arch}.tar.xz \
  32. && wget -P /tmp https://github.com/just-containers/s6-overlay/releases/download/v${S6_VER}/s6-overlay-symlinks-noarch.tar.xz \
  33. && tar -C / -Jxpf /tmp/s6-overlay-symlinks-noarch.tar.xz \
  34. && wget -P /tmp https://github.com/just-containers/s6-overlay/releases/download/v${S6_VER}/s6-overlay-symlinks-arch.tar.xz \
  35. && tar -C / -Jxpf /tmp/s6-overlay-symlinks-arch.tar.xz \
  36. && rm -rf /var/cache/apk/* /tmp/*
  37. VOLUME /config
  38. EXPOSE 22067 22070 8443
  39. ENTRYPOINT [ "/init" ]