Dockerfile 924 B

123456789101112131415161718192021
  1. # Dockerfile for ZeroTier Central Controllers
  2. FROM registry.zerotier.com/zerotier/ctlbuild:2025-07-14 AS builder
  3. ADD . /ZeroTierOne
  4. RUN export PATH=$PATH:~/.cargo/bin && cd ZeroTierOne && make clean && make central-controller -j8
  5. FROM golang:bookworm AS go_base
  6. RUN go install -tags 'postgres' github.com/golang-migrate/migrate/v4/cmd/migrate@latest
  7. FROM registry.zerotier.com/zerotier/ctlrun:2025-07-14 AS run_base
  8. COPY --from=builder /ZeroTierOne/zerotier-one /usr/local/bin/zerotier-one
  9. COPY --from=builder /ZeroTierOne/ext/opentelemetry-cpp-1.21.0/localinstall/lib/*.so /usr/local/lib64/
  10. COPY --from=go_base /go/bin/migrate /usr/local/bin/migrate
  11. COPY ext/central-controller-docker/migrations /migrations
  12. RUN chmod a+x /usr/local/bin/zerotier-one
  13. RUN echo "/usr/local/lib64" > /etc/ld.so.conf.d/usr-local-lib64.conf && ldconfig
  14. ADD ext/central-controller-docker/main.sh /
  15. RUN chmod a+x /main.sh
  16. ENTRYPOINT /main.sh