Dockerfile 729 B

1234567891011121314151617181920212223242526
  1. FROM golang:latest as build-env
  2. RUN mkdir /app
  3. WORKDIR /app
  4. COPY go.mod .
  5. COPY go.sum .
  6. RUN mkdir ./test
  7. RUN mkdir ./test/mocks
  8. COPY ./test/mocks/go.mod ./test/mocks/go.mod
  9. COPY ./test/mocks/go.sum ./test/mocks/go.sum
  10. # Get dependencies - will also be cached if we won't change mod/sum
  11. RUN go mod download
  12. # COPY the source code as the last step
  13. COPY . .
  14. # Build the binary
  15. RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -installsuffix cgo -o /go/bin/app
  16. FROM alpine:3.4
  17. RUN apk add --update --no-cache ca-certificates
  18. COPY --from=build-env /go/bin/app /go/bin/app
  19. ADD ./cloud/default.json /models/default.json
  20. ADD ./cloud/azure.json /models/azure.json
  21. ADD ./cloud/aws.json /models/aws.json
  22. ENTRYPOINT ["/go/bin/app"]