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"]