Dockerfile 942 B

123456789101112131415161718192021222324252627282930313233343536
  1. # syntax = docker/dockerfile:1-experimental
  2. ############################
  3. # STEP 1 build executable binary
  4. ############################
  5. FROM golang:1.23
  6. WORKDIR /src
  7. COPY go.* ./
  8. RUN go mod download
  9. COPY . ./
  10. RUN --mount=type=cache,target=/root/.cache/go-build \
  11. cd cmd/gorse-worker && \
  12. CGO_ENABLED=0 go build -ldflags=" \
  13. -X 'github.com/zhenghaoz/gorse/cmd/version.Version=$(git describe --tags $(git rev-parse HEAD))' \
  14. -X 'github.com/zhenghaoz/gorse/cmd/version.GitCommit=$(git rev-parse HEAD)' \
  15. -X 'github.com/zhenghaoz/gorse/cmd/version.BuildTime=$(date)'" .
  16. RUN /src/cmd/gorse-worker/gorse-worker --version
  17. ############################
  18. # STEP 2 build a small image
  19. ############################
  20. FROM scratch
  21. COPY --from=0 /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
  22. COPY --from=0 /src/cmd/gorse-worker/gorse-worker /usr/bin/gorse-worker
  23. ENV USER root
  24. ENTRYPOINT ["/usr/bin/gorse-worker"]