# 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/chain/gateway 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/chain/gateway/internal/appversion.Version=${APP_VERSION} \ -X github.com/tech/sendico/chain/gateway/internal/appversion.Revision=${GIT_REV} \ -X github.com/tech/sendico/chain/gateway/internal/appversion.Branch=${BUILD_BRANCH} \ -X github.com/tech/sendico/chain/gateway/internal/appversion.BuildUser=${BUILD_USER} \ -X github.com/tech/sendico/chain/gateway/internal/appversion.BuildDate=${BUILD_DATE}" \ -o /out/chain-gateway . FROM alpine:latest AS runtime RUN apk add --no-cache ca-certificates tzdata wget WORKDIR /app COPY api/chain/gateway/config.yml /app/config.yml COPY api/chain/gateway/env /app/env COPY api/chain/gateway/entrypoint.sh /app/entrypoint.sh COPY --from=build /out/chain-gateway /app/chain-gateway RUN chmod +x /app/entrypoint.sh EXPOSE 50070 9403 ENTRYPOINT ["/app/entrypoint.sh"] CMD ["/app/chain-gateway","--config.file","/app/config.yml"]