add Dockerfile and build script

This commit is contained in:
2021-12-20 21:43:20 +00:00
parent 65d6fbe457
commit 12c3b5f784
3 changed files with 41 additions and 10 deletions

12
Dockerfile Normal file
View File

@ -0,0 +1,12 @@
FROM docker.io/library/golang:1.17-alpine3.14 as build
RUN apk --no-cache add make build-base git
ARG GONOSUMDB
ARG GOPROXY
ARG GOBIN=/opt/bin
ARG RELEASE="${RELEASE:-undefined}"
WORKDIR /build
ADD . .
RUN STATIC=true make install
FROM scratch
COPY --from=build /opt/bin/goget /

View File

@ -1,12 +1,17 @@
BUILD_HASH := $(shell git describe --always --tags --long)
LDFLAGS := "-X main.version=${BUILD_HASH} -s -w"
COMMIT = $(shell git describe --always --tags --long --dirty)
RELEASE ?= $(COMMIT)
LDFLAGS := -X main.version=$(RELEASE)
ifdef STATIC
LDFLAGS += -w -s -extldflags=-static
export CGO_ENABLED=0
endif
all: fmt install
fmt:
go fmt ./...
.PHONY: install
install:
go fmt ./...
go install -ldflags ${LDFLAGS} ./...
.PHONY: build
build:
go fmt ./...
go build -ldflags ${LDFLAGS} ./...
go install -ldflags "${LDFLAGS}" ./...

14
build.sh Executable file
View File

@ -0,0 +1,14 @@
#!/bin/sh -eu
image="harbor.intern.drachenfels.de/shieldos/goget"
version="$(git describe --always --tags --dirty)"
buildah bud --layers \
--build-arg GOPROXY=$GOPROXY \
--build-arg GONOSUMDB=$GONOSUMDB \
--build-arg RELEASE=$version \
-t $image:latest \
-t $image:$version
buildah push $image:latest
buildah push $image:$version