Merge pull request #1068 from furuholm/multi-stage-docker-build
Replace docker-build script with multi-stage build
This commit is contained in:
commit
2c468ea8a0
@ -1,3 +1 @@
|
||||
*
|
||||
!_output/bin
|
||||
!web
|
||||
bin
|
||||
|
10
Dockerfile
10
Dockerfile
@ -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.
|
||||
|
14
Makefile
14
Makefile
@ -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:
|
||||
|
@ -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
|
Reference in New Issue
Block a user