Golang with UPX, templ, govulncheck, golangci-lint installed
1.8K
Dockerfile-alpine
ARG GOLANG_VERSION=1.23.3
ARG ALPINE_VERSION=3.20
FROM golang:${GOLANG_VERSION}-alpine${ALPINE_VERSION}
RUN apk add --no-cache upx
RUN go install github.com/a-h/templ/cmd/templ@latest
RUN go install golang.org/x/vuln/cmd/govulncheck@latest
RUN wget -O- -nv https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s v1.62.0```
.env
DOCKER_LOGIN=xxxx
DOCKER_PASSWORD=yyyy
build-alpine.sh
GOLANG_VERSION=1.23.3
ALPINE_VERSION=3.20
PLATFORMS=linux/arm/v7,linux/arm64/v8,linux/amd64
#PLATFORMS=linux/arm64/v8
echo "GOLANG_VERSION=$GOLANG_VERSION"
echo "ALPINE_VERSION=$ALPINE_VERSION"
source .env || true
if [ -z "$DOCKER_LOGIN" ]; then
echo "Error: DOCKER_LOGIN not set"
exit 1
fi
if [ -z "$DOCKER_PASSWORD" ]; then
echo "Error: DOCKER_PASSWORD not set"
exit 1
fi
echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_LOGIN" --password-stdin && \
docker buildx create --use && \
docker buildx build \
-f Dockerfile-alpine \
--build-arg "GOLANG_VERSION=${GOLANG_VERSION}" \
--build-arg "ALPINE_VERSION=${ALPINE_VERSION}" \
--platform ${PLATFORMS} \
--push \
-t slinkgo/golang_upx:${GOLANG_VERSION}-alpine${ALPINE_VERSION} \
-t slinkgo/golang_upx:${GOLANG_VERSION}-alpine \
-t slinkgo/golang_upx:alpine .
docker buildx rm
Content type
Image
Digest
sha256:19389a121…
Size
180.9 MB
Last updated
about 2 months ago
docker pull slinkgo/golang_upx:alpine