mirror of
https://github.com/taigrr/godns
synced 2025-01-18 04:03:25 -08:00
use docker buildx to build docker images
This commit is contained in:
parent
acbbe3158d
commit
9dfc40da19
14
Dockerfile
Normal file
14
Dockerfile
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
FROM golang:alpine AS builder
|
||||||
|
RUN mkdir /godns
|
||||||
|
ADD . /godns/
|
||||||
|
WORKDIR /godns
|
||||||
|
RUN go build -o godns cmd/godns/godns.go
|
||||||
|
|
||||||
|
FROM alpine
|
||||||
|
RUN apk add --update ca-certificates
|
||||||
|
RUN mkdir /usr/local/godns
|
||||||
|
COPY --from=builder /godns/godns /usr/local/godns
|
||||||
|
RUN chmod +x /usr/local/godns/godns
|
||||||
|
RUN rm -rf /var/cache/apk/*
|
||||||
|
WORKDIR /usr/local/godns
|
||||||
|
ENTRYPOINT ["./godns", "-c", "/usr/local/godns/config.json"]
|
@ -2,39 +2,37 @@
|
|||||||
BINARY=godns
|
BINARY=godns
|
||||||
# Builds the project
|
# Builds the project
|
||||||
build:
|
build:
|
||||||
GO111MODULE=on go build -o ${BINARY} -ldflags "-X main.Version=${VERSION}"
|
GO111MODULE=on go build cmd/godns/godns.go -o ${BINARY} -ldflags "-X main.Version=${VERSION}"
|
||||||
# Installs our project: copies binaries
|
# Installs our project: copies binaries
|
||||||
install:
|
install:
|
||||||
GO111MODULE=on go install
|
GO111MODULE=on go install
|
||||||
image:
|
image:
|
||||||
# Build docker image
|
# Build docker image
|
||||||
go clean
|
go clean
|
||||||
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 GO111MODULE=on go build -o ${BINARY} -ldflags "-s -w -X main.Version=${VERSION}"
|
rm -rf *.gz
|
||||||
docker build -t timothyye/godns:${VERSION} .
|
docker buildx build --platform linux/amd64,linux/386,linux/arm64,linux/arm/v7 -t timothyye/godns:${VERSION} . --push
|
||||||
docker tag timothyye/godns:${VERSION} timothyye/godns:latest
|
docker buildx build --platform linux/amd64,linux/386,linux/arm64,linux/arm/v7 -t timothyye/godns:latest . --push
|
||||||
docker push timothyye/godns:${VERSION}
|
|
||||||
docker push timothyye/godns:latest
|
|
||||||
release:
|
release:
|
||||||
# Clean
|
# Clean
|
||||||
go clean
|
go clean
|
||||||
rm -rf *.gz
|
rm -rf *.gz
|
||||||
# Build for mac
|
# Build for mac
|
||||||
GO111MODULE=on go build -o ${BINARY} -ldflags "-s -w -X main.Version=${VERSION}"
|
GO111MODULE=on go build cmd/godns/godns.go -o ${BINARY} -ldflags "-s -w -X main.Version=${VERSION}"
|
||||||
tar czvf ${BINARY}-mac64-${VERSION}.tar.gz ./${BINARY}
|
tar czvf ${BINARY}-mac64-${VERSION}.tar.gz ./${BINARY}
|
||||||
# Build for linux
|
# Build for linux
|
||||||
go clean
|
go clean
|
||||||
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 GO111MODULE=on go build -o ${BINARY} -ldflags "-s -w -X main.Version=${VERSION}"
|
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 GO111MODULE=on go build cmd/godns/godns.go -o ${BINARY} -ldflags "-s -w -X main.Version=${VERSION}"
|
||||||
tar czvf ${BINARY}-linux64-${VERSION}.tar.gz ./${BINARY}
|
tar czvf ${BINARY}-linux64-${VERSION}.tar.gz ./${BINARY}
|
||||||
# Build for arm
|
# Build for arm
|
||||||
go clean
|
go clean
|
||||||
CGO_ENABLED=0 GOOS=linux GOARCH=arm64 GO111MODULE=on go build -o ${BINARY} -ldflags "-s -w -X main.Version=${VERSION}"
|
CGO_ENABLED=0 GOOS=linux GOARCH=arm64 GO111MODULE=on go build cmd/godns/godns.go -o ${BINARY} -ldflags "-s -w -X main.Version=${VERSION}"
|
||||||
tar czvf ${BINARY}-arm64-${VERSION}.tar.gz ./${BINARY}
|
tar czvf ${BINARY}-arm64-${VERSION}.tar.gz ./${BINARY}
|
||||||
go clean
|
go clean
|
||||||
CGO_ENABLED=0 GOOS=linux GOARCH=arm GO111MODULE=on go build -o ${BINARY} -ldflags "-s -w -X main.Version=${VERSION}"
|
CGO_ENABLED=0 GOOS=linux GOARCH=arm GO111MODULE=on go build cmd/godns/godns.go -o ${BINARY} -ldflags "-s -w -X main.Version=${VERSION}"
|
||||||
tar czvf ${BINARY}-arm-${VERSION}.tar.gz ./${BINARY}
|
tar czvf ${BINARY}-arm-${VERSION}.tar.gz ./${BINARY}
|
||||||
# Build for win
|
# Build for win
|
||||||
go clean
|
go clean
|
||||||
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 GO111MODULE=on go build -o ${BINARY}.exe -ldflags "-s -w -X main.Version=${VERSION}"
|
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 GO111MODULE=on go build cmd/godns/godns.go -o ${BINARY}.exe -ldflags "-s -w -X main.Version=${VERSION}"
|
||||||
tar czvf ${BINARY}-win64-${VERSION}.tar.gz ./${BINARY}.exe
|
tar czvf ${BINARY}-win64-${VERSION}.tar.gz ./${BINARY}.exe
|
||||||
make image
|
make image
|
||||||
# Cleans our projects: deletes binaries
|
# Cleans our projects: deletes binaries
|
@ -1,9 +0,0 @@
|
|||||||
FROM timothyye/alpine:3.6-glibc
|
|
||||||
MAINTAINER Timothy
|
|
||||||
RUN apk add --update ca-certificates
|
|
||||||
RUN mkdir -p /usr/local/godns
|
|
||||||
COPY godns /usr/local/godns
|
|
||||||
RUN chmod +x /usr/local/godns/godns
|
|
||||||
RUN rm -rf /var/cache/apk/*
|
|
||||||
WORKDIR /usr/local/godns
|
|
||||||
ENTRYPOINT ["./godns", "-c", "/usr/local/godns/config.json"]
|
|
Loading…
x
Reference in New Issue
Block a user