2
0

provisioner.Dockerfile 960 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. # syntax=docker/dockerfile:1.1.7-experimental
  2. # Base Go environment
  3. # -------------------
  4. # pinned because of https://github.com/moby/moby/issues/45935
  5. FROM golang:1.20.5-alpine as base
  6. WORKDIR /porter
  7. RUN apk update && apk add --no-cache gcc musl-dev git protoc
  8. COPY go.mod go.sum ./
  9. COPY /cmd ./cmd
  10. COPY /internal ./internal
  11. COPY /api ./api
  12. COPY /ee ./ee
  13. COPY /scripts ./scripts
  14. COPY /provisioner ./provisioner
  15. COPY /pkg ./pkg
  16. RUN go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.26
  17. RUN go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.1
  18. RUN go mod download
  19. # Go build environment
  20. # --------------------
  21. FROM base AS build-go
  22. # build proto files
  23. RUN sh ./scripts/build/proto.sh
  24. RUN go build -ldflags '-w -s' -a -tags ee -o ./bin/provisioner ./cmd/provisioner
  25. # Deployment environment
  26. # ----------------------
  27. FROM alpine
  28. RUN apk update
  29. COPY --from=build-go /porter/bin/provisioner /porter/
  30. EXPOSE 8080
  31. CMD /porter/provisioner