Replace docker-build script with multi-stage build

This commit is contained in:
Tobias Furuholm 2017-09-18 08:56:39 +02:00
parent 64c97c7308
commit b6c3074ba0
4 changed files with 11 additions and 32 deletions

View File

@ -1,3 +1 @@
*
!_output/bin
!web
bin

View File

@ -1,9 +1,15 @@
FROM alpine:3.4
FROM golang:1.8.3-alpine
MAINTAINER Ed Rooth <ed.rooth@coreos.com>
MAINTAINER Lucas Servén <lucas.serven@coreos.com>
MAINTAINER Rithu John <rithu.john@coreos.com>
RUN apk add --no-cache --update alpine-sdk
COPY . /go/src/github.com/coreos/dex
RUN cd /go/src/github.com/coreos/dex && make release-binary
FROM alpine:3.4
# Dex connectors, such as GitHub and Google logins require root certificates.
# Proper installations should manage those certificates, but it's a bad user
# experience when this doesn't work out of the box.
@ -11,7 +17,7 @@ MAINTAINER Rithu John <rithu.john@coreos.com>
# OpenSSL is required so wget can query HTTPS endpoints for health checking.
RUN apk add --update ca-certificates openssl
COPY _output/bin/dex /usr/local/bin/dex
COPY --from=0 /go/bin/dex /usr/local/bin/dex
# Import frontend assets and set the correct CWD directory so the assets
# are in the default path.

View File

@ -9,8 +9,6 @@ DOCKER_REPO=quay.io/coreos/dex
DOCKER_IMAGE=$(DOCKER_REPO):$(VERSION)
$( shell mkdir -p bin )
$( shell mkdir -p _output/images )
$( shell mkdir -p _output/bin )
user=$(shell id -u -n)
group=$(shell id -g -n)
@ -58,12 +56,8 @@ lint:
golint -set_exit_status $$package $$i || exit 1; \
done
_output/bin/dex:
@./scripts/docker-build
@sudo chown $(user):$(group) _output/bin/dex
.PHONY: docker-image
docker-image: clean-release _output/bin/dex
docker-image:
@sudo docker build -t $(DOCKER_IMAGE) .
.PHONY: proto
@ -85,13 +79,9 @@ bin/protoc-gen-go:
check-go-version:
@./scripts/check-go-version
clean: clean-release
clean:
@rm -rf bin/
.PHONY: clean-release
clean-release:
@rm -rf _output/
testall: testrace vet fmt lint
FORCE:

View File

@ -1,15 +0,0 @@
#!/bin/bash -e
mkdir -p _output/bin
sudo docker run \
--cidfile=cid \
-v $PWD:/go/src/github.com/coreos/dex:ro \
-w /go/src/github.com/coreos/dex \
golang:1.8.3-alpine \
/bin/sh -x -c \
'apk add --no-cache --update alpine-sdk && make release-binary'
sudo docker cp $( cat cid ):/go/bin/dex _output/bin/dex
sudo docker rm $( cat cid )
sudo rm cid