Dockerfile 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. FROM debian:bullseye-slim AS jsbuilder
  2. ENV NODEJS_MAJOR=18
  3. ENV DEBIAN_FRONTEND=noninteractive
  4. LABEL org.opencontainers.image.source="https://github.com/kmahyyg/ztncui-aio"
  5. LABEL MAINTAINER="Key Networks https://key-networks.com"
  6. LABEL Description="ztncui (a ZeroTier network controller user interface) + ZeroTier network controller"
  7. # BUILD ZTNCUI IN FIRST STAGE
  8. WORKDIR /build
  9. COPY ZTNCUI.sh .
  10. RUN chmod a+x ZTNCUI.sh && ./ZTNCUI.sh
  11. # BUILD GO UTILS
  12. FROM golang:bullseye AS gobuilder
  13. WORKDIR /buildsrc
  14. COPY --from=jsbuilder /build/argon2g /buildsrc/argon2g
  15. COPY --from=jsbuilder /build/fileserv /buildsrc/fileserv
  16. COPY --from=jsbuilder /build/ztnodeid /buildsrc/ztnodeid
  17. COPY --from=jsbuilder /build/build-gobinaries.sh /buildsrc/build-gobinaries.sh
  18. ENV CGO_ENABLED=0
  19. RUN apt update -y && \
  20. apt install zip -y && \
  21. bash /buildsrc/build-gobinaries.sh
  22. # START RUNNER
  23. FROM debian:bullseye-slim AS runner
  24. ENV DEBIAN_FRONTEND=noninteractive
  25. ENV AUTOGEN_PLANET=0
  26. WORKDIR /tmp
  27. COPY RUNNER.sh .
  28. RUN chmod a+x RUNNER.sh && bash RUNNER.sh
  29. WORKDIR /opt/key-networks/ztncui
  30. COPY --from=jsbuilder /build/artifact.zip .
  31. RUN unzip ./artifact.zip && \
  32. rm -f ./artifact.zip
  33. WORKDIR /
  34. COPY --from=jsbuilder /build/start_firsttime_init.sh /start_firsttime_init.sh
  35. COPY --from=jsbuilder /build/start_zt1.sh /start_zt1.sh
  36. COPY --from=jsbuilder /build/start_ztncui.sh /start_ztncui.sh
  37. COPY --from=gobuilder /buildsrc/artifact-go.zip /tmp/
  38. RUN unzip -d /usr/local/bin /tmp/artifact-go.zip && \
  39. rm -rf /tmp/artifact-go.zip && \
  40. chmod 0755 /usr/local/bin/* && \
  41. chmod 0755 /start_*.sh
  42. COPY --from=jsbuilder /build/s6-rc.d/ /etc/s6-overlay/s6-rc.d/
  43. EXPOSE 3000/tcp
  44. EXPOSE 3180/tcp
  45. EXPOSE 8000/tcp
  46. EXPOSE 3443/tcp
  47. VOLUME ["/opt/key-networks/ztncui/etc", "/etc/zt-mkworld", "/var/lib/zerotier-one"]
  48. ENTRYPOINT [ "/init" ]
粤ICP备19079148号