github.com/kyma-incubator/compass/components/director@v0.0.0-20230623144113-d764f56ff805/Dockerfile (about) 1 FROM --platform=$BUILDPLATFORM golang:1.20.5-alpine3.18 as builder 2 3 ENV BASE_APP_DIR /go/src/github.com/kyma-incubator/compass/components/director 4 WORKDIR ${BASE_APP_DIR} 5 6 # 7 # Download dependencies 8 # 9 10 COPY go.mod go.sum ${BASE_APP_DIR}/ 11 RUN go mod download -x 12 13 # 14 # Copy files 15 # 16 17 COPY . . 18 19 # 20 # Build app 21 # 22 23 ARG TARGETOS TARGETARCH 24 RUN GOOS=$TARGETOS GOARCH=$TARGETARCH go build -v -o director ./cmd/director/main.go \ 25 && GOOS=$TARGETOS GOARCH=$TARGETARCH go build -v -o ns-adapter ./cmd/ns-adapter/main.go \ 26 && GOOS=$TARGETOS GOARCH=$TARGETARCH go build -v -o operations-manager ./cmd/operations-manager/main.go \ 27 && GOOS=$TARGETOS GOARCH=$TARGETARCH go build -v -o tenantfetcher-svc ./cmd/tenantfetcher-svc/main.go \ 28 && GOOS=$TARGETOS GOARCH=$TARGETARCH go build -v -o tenantloader ./cmd/tenantloader/main.go \ 29 && GOOS=$TARGETOS GOARCH=$TARGETARCH go build -v -o ordaggregator ./cmd/ordaggregator/main.go \ 30 && GOOS=$TARGETOS GOARCH=$TARGETARCH go build -v -o scopessynchronizer ./cmd/scopessynchronizer/main.go \ 31 && GOOS=$TARGETOS GOARCH=$TARGETARCH go build -v -o systemfetcher ./cmd/systemfetcher/main.go \ 32 && GOOS=$TARGETOS GOARCH=$TARGETARCH go build -v -o destinationfetcher ./cmd/destinationfetcher-svc/main.go 33 RUN mkdir /app && mv ./director /app/director \ 34 && mv ./ns-adapter /app/ns-adapter \ 35 && mv ./operations-manager /app/operations-manager \ 36 && mv ./tenantfetcher-svc /app/tenantfetcher-svc \ 37 && mv ./tenantloader /app/tenantloader \ 38 && mv ./ordaggregator /app/ordaggregator \ 39 && mv ./scopessynchronizer /app/scopessynchronizer \ 40 && mv ./systemfetcher /app/systemfetcher \ 41 && mv ./destinationfetcher /app/destinationfetcher 42 43 FROM alpine:3.18.0 44 LABEL source = git@github.com:kyma-incubator/compass.git 45 WORKDIR /app 46 47 # 48 # Copy binary 49 # 50 51 RUN apk --no-cache add curl ca-certificates 52 53 COPY --from=builder /app /app 54 COPY ./examples/ /app/examples/ 55 56 # 57 # Run app 58 # 59 60 CMD ["/app/director"]