# syntax=docker/dockerfile:1.7 ARG TARGETOS=linux ARG TARGETARCH=amd64 FROM golang:alpine AS build ARG APP_VERSION=dev ARG GIT_REV=unknown ARG BUILD_BRANCH=unknown ARG BUILD_DATE=unknown ARG BUILD_USER=ci ENV GO111MODULE=on ENV PATH="/go/bin:${PATH}" WORKDIR /src COPY . . RUN apk add --no-cache bash git build-base protoc protobuf-dev \ && go install google.golang.org/protobuf/cmd/protoc-gen-go@latest \ && go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest \ && bash ci/scripts/proto/generate.sh WORKDIR /src/api/fx/oracle RUN --mount=type=cache,target=/root/.cache/go-build \ --mount=type=cache,target=/go/pkg/mod \ CGO_ENABLED=0 GOOS=${TARGETOS} GOARCH=${TARGETARCH} \ go build -trimpath -ldflags "\ -s -w \ -X github.com/tech/sendico/fx/oracle/internal/appversion.Version=${APP_VERSION} \ -X github.com/tech/sendico/fx/oracle/internal/appversion.Revision=${GIT_REV} \ -X github.com/tech/sendico/fx/oracle/internal/appversion.Branch=${BUILD_BRANCH} \ -X github.com/tech/sendico/fx/oracle/internal/appversion.BuildUser=${BUILD_USER} \ -X github.com/tech/sendico/fx/oracle/internal/appversion.BuildDate=${BUILD_DATE}" \ -o /out/fx-oracle . FROM alpine:latest AS runtime RUN apk add --no-cache ca-certificates tzdata wget WORKDIR /app COPY api/fx/oracle/config.yml /app/config.yml COPY --from=build /out/fx-oracle /app/fx-oracle EXPOSE 50051 9400 ENTRYPOINT ["/app/fx-oracle"] CMD ["--config.file", "/app/config.yml"]