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