diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000000..1ccd5ac233f --- /dev/null +++ b/Dockerfile @@ -0,0 +1,17 @@ +FROM golang:1.12-alpine as builder + +WORKDIR /go/src/github.com/cloudflare/cloudflared/ +COPY . . + +RUN apk add --no-cache gcc musl-dev git upx ca-certificates +RUN VERSION=$(git describe --tags --always --dirty="-dev") && \ + DATE=$(date -u '+%Y-%m-%dT%H:%MZ') && \ + go build -ldflags "-X main.Version=\"${VERSION}\" -X main.BuildTime=\"${DATE}\"" \ + -installsuffix cgo -o cloudflared ./cmd/cloudflared +RUN upx --no-progress cloudflared + +FROM alpine:3.9 +COPY --from=builder /go/src/github.com/cloudflare/cloudflared/cloudflared /usr/local/bin/ +COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt +ENTRYPOINT ["cloudflared"] +CMD ["version"] diff --git a/Makefile b/Makefile index 0e9d267cf40..51a62a19c67 100644 --- a/Makefile +++ b/Makefile @@ -31,6 +31,10 @@ clean: cloudflared: tunnel-deps go build -v $(VERSION_FLAGS) $(IMPORT_PATH)/cmd/cloudflared +.PHONY: container +container: + docker build -t cloudflare/cloudflared:"$(VERSION)" . + .PHONY: test test: vet go test -v -race $(VERSION_FLAGS) ./...