Dockerfile 903 B

123456789101112131415161718192021222324252627282930313233343536
  1. # use a builder image for building cloudflare
  2. ARG TARGET_GOOS
  3. ARG TARGET_GOARCH
  4. FROM golang:1.22.5 as builder
  5. ENV GO111MODULE=on \
  6. CGO_ENABLED=0 \
  7. TARGET_GOOS=${TARGET_GOOS} \
  8. TARGET_GOARCH=${TARGET_GOARCH} \
  9. CONTAINER_BUILD=1
  10. WORKDIR /go/src/github.com/cloudflare/cloudflared/
  11. # copy our sources into the builder image
  12. COPY . .
  13. RUN .teamcity/install-cloudflare-go.sh
  14. # compile cloudflared
  15. RUN PATH="/tmp/go/bin:$PATH" make cloudflared
  16. # use a distroless base image with glibc
  17. FROM gcr.io/distroless/base-debian11:nonroot
  18. LABEL org.opencontainers.image.source="https://github.com/cloudflare/cloudflared"
  19. # copy our compiled binary
  20. COPY --from=builder --chown=nonroot /go/src/github.com/cloudflare/cloudflared/cloudflared /usr/local/bin/
  21. # run as non-privileged user
  22. USER nonroot
  23. # command / entrypoint of container
  24. ENTRYPOINT ["cloudflared", "--no-autoupdate"]
  25. CMD ["version"]