diff --git a/.circleci/config.yml b/.circleci/config.yml index 639c1160877..0e4a976400c 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -29,42 +29,24 @@ workflows: <<: *build_always - test_dashboard: <<: *build_always - - build_chartrepo: + - build_go_images: <<: *build_always - requires: - - test_go - - build_chartsvc: - <<: *build_always - requires: - - test_go - - build_chart_apprepository: - <<: *build_always - requires: - - test_go - build_dashboard: <<: *build_always - requires: - - test_dashboard - - build_tiller_proxy: - <<: *build_always - requires: - - test_go - GKE_1_9: <<: *build_on_master requires: - - build_chartrepo - - build_chartsvc - - build_chart_apprepository + - test_go + - test_dashboard + - build_go_images - build_dashboard - - build_tiller_proxy - GKE_1_10: <<: *build_on_master requires: - - build_chartrepo - - build_chartsvc - - build_chart_apprepository + - test_go + - test_dashboard + - build_go_images - build_dashboard - - build_tiller_proxy - sync_chart: <<: *build_on_master requires: @@ -100,20 +82,20 @@ exports: &exports # Apart from using a DEV_TAG we use a different image ID to avoid polluting the tag # history of the production tag echo "export IMG_MODIFIER=-ci" >> $BASH_ENV -build_image: &build_image - working_directory: /go/src/github.com/kubeapps/kubeapps - docker: - - image: circleci/golang:1.9 +build_images: &build_images steps: - setup_remote_docker - checkout - <<: *exports - - run: make IMG_MODIFIER="$IMG_MODIFIER" VERSION="${DEV_TAG}" ${IMAGE} - run: | - if [[ -z "${CIRCLE_PULL_REQUEST}" && -n "${DOCKER_USERNAME}" && -n "${DOCKER_PASSWORD}" ]]; then - docker login -u="${DOCKER_USERNAME}" -p="${DOCKER_PASSWORD}" - docker push ${IMAGE}${IMG_MODIFIER}:${DEV_TAG} - fi + read -ra IMG_ARRAY <<< "$IMAGES" + for IMAGE in "${IMG_ARRAY[@]}"; do + make IMG_MODIFIER="$IMG_MODIFIER" VERSION="${DEV_TAG}" ${IMAGE} + if [[ -z "${CIRCLE_PULL_REQUEST}" && -n "${DOCKER_USERNAME}" && -n "${DOCKER_PASSWORD}" ]]; then + docker login -u="${DOCKER_USERNAME}" -p="${DOCKER_PASSWORD}" + docker push ${IMAGE}${IMG_MODIFIER}:${DEV_TAG} + fi + done gke_test: &gke_test docker: - image: circleci/golang:1.9 @@ -172,26 +154,20 @@ jobs: - run: yarn install --cwd=dashboard --frozen-lockfile - run: yarn --cwd=dashboard run lint - run: yarn --cwd=dashboard run test --maxWorkers=4 --coverage - build_chartrepo: - <<: *build_image - environment: - - IMAGE=kubeapps/chart-repo - build_chartsvc: - <<: *build_image - environment: - - IMAGE=kubeapps/chartsvc - build_chart_apprepository: - <<: *build_image + build_go_images: + docker: + - image: circleci/golang:1.9 + working_directory: /go/src/github.com/kubeapps/kubeapps environment: - - IMAGE=kubeapps/apprepository-controller + GOPATH: /home/circleci/.go_workspace + IMAGES: "kubeapps/apprepository-controller kubeapps/chart-repo kubeapps/chartsvc kubeapps/tiller-proxy" + <<: *build_images build_dashboard: - <<: *build_image - environment: - - IMAGE=kubeapps/dashboard - build_tiller_proxy: - <<: *build_image + docker: + - image: circleci/golang:1.9 environment: - - IMAGE=kubeapps/tiller-proxy + IMAGES: "kubeapps/dashboard" + <<: *build_images release: docker: - image: circleci/golang:1.9 diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000000..19d6664d1f0 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,3 @@ +dashboard/node_modules +.git +docs diff --git a/Makefile b/Makefile index 5347833ad17..fb324df0ce2 100644 --- a/Makefile +++ b/Makefile @@ -18,10 +18,6 @@ kubeapps/%: kubeapps/dashboard: docker build -t kubeapps/dashboard$(IMG_MODIFIER):$(VERSION) -f dashboard/Dockerfile dashboard/ -kubeapps/tiller-proxy: - CGO_ENABLED=0 GOOS=linux go build -installsuffix cgo -o ./cmd/tiller-proxy/proxy-static ./cmd/tiller-proxy - docker build -t kubeapps/tiller-proxy$(IMG_MODIFIER):$(VERSION) -f cmd/tiller-proxy/Dockerfile cmd/tiller-proxy - test: $(GO) test $(GO_PACKAGES) diff --git a/cmd/chart-repo/Dockerfile b/cmd/chart-repo/Dockerfile index efbc80b2c08..e640f3f87bc 100644 --- a/cmd/chart-repo/Dockerfile +++ b/cmd/chart-repo/Dockerfile @@ -1,7 +1,6 @@ FROM quay.io/deis/go-dev:v1.8.2 as builder COPY . /go/src/github.com/kubeapps/kubeapps WORKDIR /go/src/github.com/kubeapps/kubeapps -RUN dep ensure RUN CGO_ENABLED=0 go build -a -installsuffix cgo ./cmd/chart-repo FROM scratch diff --git a/cmd/tiller-proxy/.gitignore b/cmd/tiller-proxy/.gitignore deleted file mode 100644 index 2d75b35282a..00000000000 --- a/cmd/tiller-proxy/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -proxy-static -tiller-proxy diff --git a/cmd/tiller-proxy/Dockerfile b/cmd/tiller-proxy/Dockerfile index d8b95222d5e..2bcc647614d 100644 --- a/cmd/tiller-proxy/Dockerfile +++ b/cmd/tiller-proxy/Dockerfile @@ -1,7 +1,10 @@ -FROM alpine:3.6 as builder -RUN apk --no-cache add ca-certificates +FROM quay.io/deis/go-dev:v1.8.2 as builder +COPY . /go/src/github.com/kubeapps/kubeapps +WORKDIR /go/src/github.com/kubeapps/kubeapps +RUN CGO_ENABLED=0 go build -a -installsuffix cgo ./cmd/tiller-proxy FROM scratch COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ -COPY ./proxy-static /proxy +COPY --from=builder /go/src/github.com/kubeapps/kubeapps/tiller-proxy /proxy +EXPOSE 8080 CMD ["/proxy"]