Commit b6c3074b authored by Tobias Furuholm's avatar Tobias Furuholm

Replace docker-build script with multi-stage build

parent 64c97c73
* bin
!_output/bin
!web
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> ...@@ -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.
......
...@@ -9,8 +9,6 @@ DOCKER_REPO=quay.io/coreos/dex ...@@ -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: ...@@ -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: ...@@ -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:
......
#!/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
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment