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 @@
|
|||||||
*
|
bin
|
||||||
!_output/bin
|
|
||||||
!web
|
|
||||||
|
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 Ed Rooth <ed.rooth@coreos.com>
|
||||||
MAINTAINER Lucas Servén <lucas.serven@coreos.com>
|
MAINTAINER Lucas Servén <lucas.serven@coreos.com>
|
||||||
MAINTAINER Rithu John <rithu.john@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.
|
# Dex connectors, such as GitHub and Google logins require root certificates.
|
||||||
# Proper installations should manage those certificates, but it's a bad user
|
# Proper installations should manage those certificates, but it's a bad user
|
||||||
# experience when this doesn't work out of the box.
|
# 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.
|
# OpenSSL is required so wget can query HTTPS endpoints for health checking.
|
||||||
RUN apk add --update ca-certificates openssl
|
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
|
# Import frontend assets and set the correct CWD directory so the assets
|
||||||
# are in the default path.
|
# are in the default path.
|
||||||
|
14
Makefile
14
Makefile
@ -9,8 +9,6 @@ DOCKER_REPO=quay.io/coreos/dex
|
|||||||
DOCKER_IMAGE=$(DOCKER_REPO):$(VERSION)
|
DOCKER_IMAGE=$(DOCKER_REPO):$(VERSION)
|
||||||
|
|
||||||
$( shell mkdir -p bin )
|
$( shell mkdir -p bin )
|
||||||
$( shell mkdir -p _output/images )
|
|
||||||
$( shell mkdir -p _output/bin )
|
|
||||||
|
|
||||||
user=$(shell id -u -n)
|
user=$(shell id -u -n)
|
||||||
group=$(shell id -g -n)
|
group=$(shell id -g -n)
|
||||||
@ -58,12 +56,8 @@ lint:
|
|||||||
golint -set_exit_status $$package $$i || exit 1; \
|
golint -set_exit_status $$package $$i || exit 1; \
|
||||||
done
|
done
|
||||||
|
|
||||||
_output/bin/dex:
|
|
||||||
@./scripts/docker-build
|
|
||||||
@sudo chown $(user):$(group) _output/bin/dex
|
|
||||||
|
|
||||||
.PHONY: docker-image
|
.PHONY: docker-image
|
||||||
docker-image: clean-release _output/bin/dex
|
docker-image:
|
||||||
@sudo docker build -t $(DOCKER_IMAGE) .
|
@sudo docker build -t $(DOCKER_IMAGE) .
|
||||||
|
|
||||||
.PHONY: proto
|
.PHONY: proto
|
||||||
@ -85,13 +79,9 @@ bin/protoc-gen-go:
|
|||||||
check-go-version:
|
check-go-version:
|
||||||
@./scripts/check-go-version
|
@./scripts/check-go-version
|
||||||
|
|
||||||
clean: clean-release
|
clean:
|
||||||
@rm -rf bin/
|
@rm -rf bin/
|
||||||
|
|
||||||
.PHONY: clean-release
|
|
||||||
clean-release:
|
|
||||||
@rm -rf _output/
|
|
||||||
|
|
||||||
testall: testrace vet fmt lint
|
testall: testrace vet fmt lint
|
||||||
|
|
||||||
FORCE:
|
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