support for multiarch docker manifest
merged from https://github.com/klutchell/cloudflared requires 'docker login' prior to 'make manifest' so the image can be pushed
This commit is contained in:
parent
c5af83af66
commit
ec6211d572
26
Dockerfile
26
Dockerfile
|
@ -1,12 +1,22 @@
|
|||
FROM golang:1.12 as builder
|
||||
WORKDIR /go/src/github.com/cloudflare/cloudflared/
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends upx
|
||||
# Run after `apt-get update` to improve rebuild scenarios
|
||||
COPY . .
|
||||
RUN make cloudflared
|
||||
RUN upx --no-progress cloudflared
|
||||
FROM golang:1.12-alpine as builder
|
||||
|
||||
WORKDIR /go/src/github.com/cloudflare/cloudflared/
|
||||
|
||||
COPY . .
|
||||
|
||||
ENV GO111MODULE on
|
||||
ENV CGO_ENABLED 0
|
||||
|
||||
RUN apk add --no-cache build-base=0.5-r1 git=2.22.0-r0 upx=3.95-r2 \
|
||||
&& make cloudflared \
|
||||
&& upx --no-progress cloudflared
|
||||
|
||||
FROM scratch
|
||||
|
||||
FROM gcr.io/distroless/base
|
||||
COPY --from=builder /go/src/github.com/cloudflare/cloudflared/cloudflared /usr/local/bin/
|
||||
|
||||
ENTRYPOINT ["cloudflared", "--no-autoupdate"]
|
||||
|
||||
CMD ["version"]
|
||||
|
||||
RUN ["cloudflared", "--version"]
|
||||
|
|
13
Makefile
13
Makefile
|
@ -6,6 +6,8 @@ IMPORT_PATH := github.com/cloudflare/cloudflared
|
|||
PACKAGE_DIR := $(CURDIR)/packaging
|
||||
INSTALL_BINDIR := usr/local/bin
|
||||
|
||||
DOCKER_CLI_EXPERIMENTAL := enabled
|
||||
|
||||
EQUINOX_FLAGS = --version="$(VERSION)" \
|
||||
--platforms="$(EQUINOX_BUILD_PLATFORMS)" \
|
||||
--app="$(EQUINOX_APP_ID)" \
|
||||
|
@ -35,6 +37,17 @@ cloudflared: tunnel-deps
|
|||
container:
|
||||
docker build -t cloudflare/cloudflared:"$(VERSION)" .
|
||||
|
||||
.PHONY: manifest
|
||||
manifest:
|
||||
docker run --rm --privileged aptman/qus -s -- -r
|
||||
docker run --rm --privileged aptman/qus -s -- -p
|
||||
-docker buildx create --use --name cloudflared
|
||||
docker buildx inspect --bootstrap
|
||||
docker buildx build . \
|
||||
-t cloudflare/cloudflared:"$(VERSION)" \
|
||||
--platform=linux/amd64,linux/arm64,linux/386,linux/arm/v7,linux/arm/v6 \
|
||||
--pull --push
|
||||
|
||||
.PHONY: test
|
||||
test: vet
|
||||
go test -v -mod=vendor -race $(VERSION_FLAGS) ./...
|
||||
|
|
Loading…
Reference in New Issue