Dockerfile 878 B

12345678910111213141516171819202122232425262728293031323334
  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. WORKDIR /go/src/github.com/cloudflare/cloudflared/
  10. # copy our sources into the builder image
  11. COPY . .
  12. RUN .teamcity/install-cloudflare-go.sh
  13. # compile cloudflared
  14. RUN PATH="/tmp/go/bin:$PATH" make cloudflared
  15. # use a distroless base image with glibc
  16. FROM gcr.io/distroless/base-debian11:nonroot
  17. LABEL org.opencontainers.image.source="https://github.com/cloudflare/cloudflared"
  18. # copy our compiled binary
  19. COPY --from=builder --chown=nonroot /go/src/github.com/cloudflare/cloudflared/cloudflared /usr/local/bin/
  20. # run as non-privileged user
  21. USER nonroot
  22. # command / entrypoint of container
  23. ENTRYPOINT ["cloudflared", "--no-autoupdate"]
  24. CMD ["version"]