Dockerfile 1.6 KB

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