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
|
FROM golang:1.12-alpine as builder
|
||||||
WORKDIR /go/src/github.com/cloudflare/cloudflared/
|
|
||||||
RUN apt-get update && apt-get install -y --no-install-recommends upx
|
WORKDIR /go/src/github.com/cloudflare/cloudflared/
|
||||||
# Run after `apt-get update` to improve rebuild scenarios
|
|
||||||
COPY . .
|
COPY . .
|
||||||
RUN make cloudflared
|
|
||||||
RUN upx --no-progress cloudflared
|
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/
|
COPY --from=builder /go/src/github.com/cloudflare/cloudflared/cloudflared /usr/local/bin/
|
||||||
|
|
||||||
ENTRYPOINT ["cloudflared", "--no-autoupdate"]
|
ENTRYPOINT ["cloudflared", "--no-autoupdate"]
|
||||||
|
|
||||||
CMD ["version"]
|
CMD ["version"]
|
||||||
|
|
||||||
|
RUN ["cloudflared", "--version"]
|
||||||
|
|
13
Makefile
13
Makefile
|
@ -6,6 +6,8 @@ IMPORT_PATH := github.com/cloudflare/cloudflared
|
||||||
PACKAGE_DIR := $(CURDIR)/packaging
|
PACKAGE_DIR := $(CURDIR)/packaging
|
||||||
INSTALL_BINDIR := usr/local/bin
|
INSTALL_BINDIR := usr/local/bin
|
||||||
|
|
||||||
|
DOCKER_CLI_EXPERIMENTAL := enabled
|
||||||
|
|
||||||
EQUINOX_FLAGS = --version="$(VERSION)" \
|
EQUINOX_FLAGS = --version="$(VERSION)" \
|
||||||
--platforms="$(EQUINOX_BUILD_PLATFORMS)" \
|
--platforms="$(EQUINOX_BUILD_PLATFORMS)" \
|
||||||
--app="$(EQUINOX_APP_ID)" \
|
--app="$(EQUINOX_APP_ID)" \
|
||||||
|
@ -35,6 +37,17 @@ cloudflared: tunnel-deps
|
||||||
container:
|
container:
|
||||||
docker build -t cloudflare/cloudflared:"$(VERSION)" .
|
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
|
.PHONY: test
|
||||||
test: vet
|
test: vet
|
||||||
go test -v -mod=vendor -race $(VERSION_FLAGS) ./...
|
go test -v -mod=vendor -race $(VERSION_FLAGS) ./...
|
||||||
|
|
Loading…
Reference in New Issue