build(docker): use Makefile build directive inside Dockerfile

This commit is contained in:
Alexis Couvreur
2022-10-04 14:40:28 +00:00
parent b220bc4bf7
commit 65e98dcac2
2 changed files with 18 additions and 7 deletions

View File

@@ -1,18 +1,27 @@
FROM golang:1.18-alpine AS build
FROM golang:1.18 AS build
ENV CGO_ENABLED=0
ENV PORT 10000
COPY . /go/src/sablier
WORKDIR /go/src/sablier
COPY go.mod ./
COPY go.sum ./
RUN go mod download
COPY . /go/src/sablier
ARG TARGETOS
ARG TARGETARCH
RUN GIN_MODE=release GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build -buildvcs=false -o /go/bin/sablier
RUN make ${TARGETOS}/${TARGETARCH}
FROM alpine
RUN addgroup -S sablier && adduser -S sablier -G sablier
USER sablier:sablier
COPY --from=build --chown=sablier:sablier /go/src/sablier/sablier* /go/bin/sablier
EXPOSE 10000
COPY --from=build /go/bin/sablier /go/bin/sablier
ENTRYPOINT [ "/go/bin/sablier" ]
CMD [ "--swarmMode=true" ]
CMD [ "start", "--provider.name=docker"]

View File

@@ -13,8 +13,10 @@ VPREFIX := github.com/acouvreur/sablier/version
GO_LDFLAGS := -X $(VPREFIX).Branch=$(GIT_BRANCH) -X $(VPREFIX).Version=$(version) -X $(VPREFIX).Revision=$(GIT_REVISION) -X $(VPREFIX).BuildUser=$(shell whoami)@$(shell hostname) -X $(VPREFIX).BuildDate=$(shell date -u +"%Y-%m-%dT%H:%M:%SZ")
$(PLATFORMS):
GIN_MODE=release GOOS=$(os) GOARCH=$(arch) go build -ldflags="${GO_LDFLAGS}" -o 'sablier_$(version)_$(os)-$(arch)' .
CGO_ENABLED=0 GIN_MODE=release GOOS=$(os) GOARCH=$(arch) go build -tags=nomsgpack -v -ldflags="${GO_LDFLAGS}" -o 'sablier_$(version)_$(os)-$(arch)' .
build:
CGO_ENABLED=0 GIN_MODE=release GOOS=$(os) GOARCH=$(arch) go build -tags=nomsgpack -v -ldflags="${GO_LDFLAGS}" -o 'sablier_$(version)_$(os)-$(arch)' .
release: $(PLATFORMS)
.PHONY: release $(PLATFORMS)