From d3e84f33587be59160d6c5fb7c9f48d62455c25f Mon Sep 17 00:00:00 2001 From: Irfan Habib Date: Mon, 9 Oct 2017 14:33:27 +0100 Subject: [PATCH 1/7] Migrate container images to opensuse:42.3 base --- deploy/Dockerfile.bk.build | 4 +- deploy/Dockerfile.bk.dev | 7 +- deploy/Dockerfile.ui.dev | 5 +- deploy/build-base-images.sh | 65 +++++++++++++++++ deploy/build_portal_proxy.sh | 2 +- deploy/ci/scripts/build_goose_image.sh | 19 ----- deploy/common.yml | 8 --- deploy/compile.sh | 6 +- deploy/containers/nginx/Dockerfile.dev | 2 +- deploy/db/Dockerfile.goose.dev | 2 +- deploy/provision.sh | 2 +- .../Dockerfile.stratos-bk-base.tmpl | 5 ++ .../Dockerfile.stratos-bk-build-base.tmpl | 16 +++++ .../Dockerfile.stratos-goose-base.tmpl | 8 +++ .../Dockerfile.stratos-nginx-base.tmpl | 5 ++ .../Dockerfile.stratos-ui-base.tmpl | 8 +++ .../stratos-base-images/build-base-images.sh | 69 +++++++++++++++++++ .../tools/build-push-proxy-builder-image.sh | 10 +-- 18 files changed, 195 insertions(+), 48 deletions(-) create mode 100644 deploy/build-base-images.sh delete mode 100755 deploy/ci/scripts/build_goose_image.sh create mode 100644 deploy/stratos-base-images/Dockerfile.stratos-bk-base.tmpl create mode 100644 deploy/stratos-base-images/Dockerfile.stratos-bk-build-base.tmpl create mode 100644 deploy/stratos-base-images/Dockerfile.stratos-goose-base.tmpl create mode 100644 deploy/stratos-base-images/Dockerfile.stratos-nginx-base.tmpl create mode 100644 deploy/stratos-base-images/Dockerfile.stratos-ui-base.tmpl create mode 100755 deploy/stratos-base-images/build-base-images.sh diff --git a/deploy/Dockerfile.bk.build b/deploy/Dockerfile.bk.build index 55264ace03..56da36f2a9 100644 --- a/deploy/Dockerfile.bk.build +++ b/deploy/Dockerfile.bk.build @@ -1,9 +1,9 @@ -FROM splatform/stratos-bk-build-base +FROM splatform/stratos-bk-build-base:dev RUN mkdir -p /go/src/github.com/SUSE/stratos-ui WORKDIR /go/src/github.com/SUSE/stratos-ui ENV GLIDE_HOME /.glide COPY glide-cache /.glide -COPY npm-cache /root/.npm +COPY npm-cache/ /root/.npm COPY compile.sh / CMD ["/compile.sh"] diff --git a/deploy/Dockerfile.bk.dev b/deploy/Dockerfile.bk.dev index 2fa63aba37..9d7ec394b0 100644 --- a/deploy/Dockerfile.bk.dev +++ b/deploy/Dockerfile.bk.dev @@ -1,10 +1,5 @@ -FROM alpine:latest +FROM splatform/stratos-bk-base:dev -RUN apk update && \ - apk add ca-certificates git &&\ - mkdir -p /srv - -WORKDIR /srv COPY outputs/* /srv/ COPY dev-certs dev-certs RUN chmod +x portal-proxy diff --git a/deploy/Dockerfile.ui.dev b/deploy/Dockerfile.ui.dev index e26cad52aa..e9d5b6d04b 100644 --- a/deploy/Dockerfile.ui.dev +++ b/deploy/Dockerfile.ui.dev @@ -1,4 +1,5 @@ -FROM node:6.9.1 +FROM splatform/stratos-ui-base:dev + ARG USER_ID ARG GROUP_ID @@ -13,7 +14,7 @@ RUN user_exists=$(getent passwd ${USER_ID} | cut -d: -f1); \ echo "Group with gid ${GROUP_ID} already exists."; \ fi ;\ if [ -z "${user_exists}" ]; then \ - useradd -m -r -g ${USER_NAME} -u ${USER_ID} ${USER_NAME}; \ + useradd -m -r -g ${GROUP_ID} -u ${USER_ID} ${USER_NAME}; \ else \ echo "User with uid ${USER_ID} already exists."; \ fi diff --git a/deploy/build-base-images.sh b/deploy/build-base-images.sh new file mode 100644 index 0000000000..024e3116dd --- /dev/null +++ b/deploy/build-base-images.sh @@ -0,0 +1,65 @@ +#!/bin/bash + +BASE_IMAGE=opensuse:42.3 +REGISTRY=docker.io +ORGANIZATION=splatform +TAG=dev +PUSH_IMAGES= + +build_and_push_image() { + image_name=$1 + docker build . -t ${REGISTRY}/${ORGANIZATION}/${image_name}:${TAG} + if [ -z ${PUSH_IMAGES} ]; then + docker push ${REGISTRY}/${ORGANIZATION}/${image_name}:${TAG} + fi +} +# Base image with node installed +build_ui_base(){ + + tmp_dir=$(mktemp -d) + pushd $tmp_dir + cat << EOF > Dockerfile + FROM ${BASE_IMAGE} + + RUN zypper -n ref && \ + zypper -n up && \ + zypper in -y wget tar + RUN wget https://nodejs.org/dist/v6.11.4/node-v6.11.4-linux-x64.tar.xz && \ + tar -xf node-v6.11.4-linux-x64.tar.xz + ENV PATH $PATH:node-v6.11.4-linux-x64/bin +EOF + build_and_push_image stratos-ui-base + popd +} + +build_nginx_base(){ + tmp_dir=$(mktemp -d) + pushd $tmp_dir + cat << EOF > Dockerfile + +EOF + build_and_push_image stratos-nginx-base + popd +} + +build_bk_base(){ + tmp_dir=$(mktemp -d) + pushd $tmp_dir + cat << EOF > Dockerfile + +EOF + build_and_push_image stratos-bk-base + popd +} + +build_goose_base(){ + tmp_dir=$(mktemp -d) + pushd $tmp_dir + cat << EOF > Dockerfile + FROM ${BASE_IMAGE} + RUN zypper install -y go + RUN go get bitbucket.org/liamstask/goose/cmd/goose +EOF + build_and_push_image stratos-goose-base + popd +} \ No newline at end of file diff --git a/deploy/build_portal_proxy.sh b/deploy/build_portal_proxy.sh index 55f984cc05..38bba57c6d 100755 --- a/deploy/build_portal_proxy.sh +++ b/deploy/build_portal_proxy.sh @@ -14,7 +14,7 @@ docker run -it \ -e GROUP_ID=$(id -g) \ --name console-proxy-builder \ --volume $(pwd):/go/src/github.com/SUSE/stratos-ui \ - splatform/stratos-proxy-builder:test $* + splatform/stratos-proxy-builder:dev $* ret=$? popd diff --git a/deploy/ci/scripts/build_goose_image.sh b/deploy/ci/scripts/build_goose_image.sh deleted file mode 100755 index b8604c3210..0000000000 --- a/deploy/ci/scripts/build_goose_image.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash - -DIRPATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -DOCKER_REGISTRY=${DOCKER_REGISTRY:-docker.io} -DOCKER_ORG=${DOCKER_ORG:-susetest} -TAG=${TAG:-test} - -source ${DIRPATH}/build_common.sh - -cd ${DIRPATH}/../../../portal-proxy/db - -cat > Dockerfile.goose.tmp << EOL -FROM golang:1.6 -RUN go get bitbucket.org/liamstask/goose/cmd/goose -EOL - -docker build -f Dockerfile.goose.tmp ./ -t ${DOCKER_REGISTRY}/${DOCKER_ORG}/goose:${TAG} \ - ${BUILD_ARGS} - diff --git a/deploy/common.yml b/deploy/common.yml index c03e4038db..836e581d56 100644 --- a/deploy/common.yml +++ b/deploy/common.yml @@ -24,14 +24,6 @@ services: ############################################################################## - postgres: - extends: imageCommon - image: postgres:latest - env_file: - ./postgres.env - ports: - - "5432:5432" - mariadb: extends: imageCommon image: mariadb:latest diff --git a/deploy/compile.sh b/deploy/compile.sh index f78e4b0402..3185ce676d 100755 --- a/deploy/compile.sh +++ b/deploy/compile.sh @@ -1,12 +1,14 @@ -#!/bin/sh +#!/bin/bash set -e +env +ls / rm -rf node_modules npm install npm run build-backend if [ "${USER_NAME}" != "root" ]; then - adduser -D -G users -u ${USER_ID} ${USER_NAME} + useradd -G users -u ${USER_ID} ${USER_NAME} chown -R ${USER_NAME}:${GROUP_ID} outputs/ fi diff --git a/deploy/containers/nginx/Dockerfile.dev b/deploy/containers/nginx/Dockerfile.dev index 1f7073e664..ce46b73fbf 100644 --- a/deploy/containers/nginx/Dockerfile.dev +++ b/deploy/containers/nginx/Dockerfile.dev @@ -1,4 +1,4 @@ -FROM nginx:1.11 +FROM splatform/stratos-nginx-base:dev RUN mkdir -p /etc/secrets/ && \ openssl req -batch -new -newkey rsa:2048 -days 365 -nodes -x509 -keyout /etc/secrets/server.key -out /etc/secrets/server.crt && \ diff --git a/deploy/db/Dockerfile.goose.dev b/deploy/db/Dockerfile.goose.dev index ff72335aa8..a77ba54876 100644 --- a/deploy/db/Dockerfile.goose.dev +++ b/deploy/db/Dockerfile.goose.dev @@ -1,4 +1,4 @@ -FROM splatform/stratos-goose +FROM splatform/stratos-goose-base:dev WORKDIR /src diff --git a/deploy/provision.sh b/deploy/provision.sh index b651145a80..6ec8ff85e5 100755 --- a/deploy/provision.sh +++ b/deploy/provision.sh @@ -16,7 +16,7 @@ if [ ! -z "${CREATE_USER}" ]; then fi npm install -PATH=$PATH:$WORK_DIR/node_modules/.bin +export PATH=$PATH:$WORK_DIR/node_modules/.bin bower install --allow-root --force npm run build diff --git a/deploy/stratos-base-images/Dockerfile.stratos-bk-base.tmpl b/deploy/stratos-base-images/Dockerfile.stratos-bk-base.tmpl new file mode 100644 index 0000000000..ad113be64b --- /dev/null +++ b/deploy/stratos-base-images/Dockerfile.stratos-bk-base.tmpl @@ -0,0 +1,5 @@ +FROM {{BASE_IMAGE}} +RUN zypper in -y ca-certificates git &&\ + mkdir -p /srv + +WORKDIR /srv \ No newline at end of file diff --git a/deploy/stratos-base-images/Dockerfile.stratos-bk-build-base.tmpl b/deploy/stratos-base-images/Dockerfile.stratos-bk-build-base.tmpl new file mode 100644 index 0000000000..8f58a65722 --- /dev/null +++ b/deploy/stratos-base-images/Dockerfile.stratos-bk-build-base.tmpl @@ -0,0 +1,16 @@ +FROM {{BASE_IMAGE}} + +RUN zypper -n ref && \ +zypper -n up && \ +zypper in -y wget which tar git gcc +RUN wget https://nodejs.org/dist/v6.11.4/node-v6.11.4-linux-x64.tar.xz && \ +tar -xf node-v6.11.4-linux-x64.tar.xz +RUN wget https://storage.googleapis.com/golang/go1.8.4.linux-amd64.tar.gz && \ + tar -xzf go1.8.4.linux-amd64.tar.gz -C /usr/local/ && \ + mkdir -p /go/bin && \ + mkdir -p /go/src +ENV PATH $PATH:/node-v6.11.4-linux-x64/bin:/usr/local/go/bin:/go/bin +ENV GOPATH /go +RUN wget https://glide.sh/get && \ + chmod +x get && \ + ./get diff --git a/deploy/stratos-base-images/Dockerfile.stratos-goose-base.tmpl b/deploy/stratos-base-images/Dockerfile.stratos-goose-base.tmpl new file mode 100644 index 0000000000..363dde6c51 --- /dev/null +++ b/deploy/stratos-base-images/Dockerfile.stratos-goose-base.tmpl @@ -0,0 +1,8 @@ +FROM {{BASE_IMAGE}} +RUN zypper -n ref && \ + zypper -n up && \ + zypper in -y go git +RUN mkdir /go +ENV GOPATH /go +WORKDIR /go +RUN go get bitbucket.org/liamstask/goose/cmd/goose \ No newline at end of file diff --git a/deploy/stratos-base-images/Dockerfile.stratos-nginx-base.tmpl b/deploy/stratos-base-images/Dockerfile.stratos-nginx-base.tmpl new file mode 100644 index 0000000000..66fbf79762 --- /dev/null +++ b/deploy/stratos-base-images/Dockerfile.stratos-nginx-base.tmpl @@ -0,0 +1,5 @@ +FROM {{BASE_IMAGE}} + +RUN zypper -n ref && \ + zypper -n up && \ + zypper in -y nginx \ No newline at end of file diff --git a/deploy/stratos-base-images/Dockerfile.stratos-ui-base.tmpl b/deploy/stratos-base-images/Dockerfile.stratos-ui-base.tmpl new file mode 100644 index 0000000000..bbd1e7b919 --- /dev/null +++ b/deploy/stratos-base-images/Dockerfile.stratos-ui-base.tmpl @@ -0,0 +1,8 @@ +FROM {{BASE_IMAGE}} + +RUN zypper -n ref && \ +zypper -n up && \ +zypper in -y wget tar git +RUN wget https://nodejs.org/dist/v8.6.0/node-v8.6.0-linux-x64.tar.xz && \ +tar -xf node-v8.6.0-linux-x64.tar.xz +ENV PATH $PATH:/node-v8.6.0-linux-x64/bin \ No newline at end of file diff --git a/deploy/stratos-base-images/build-base-images.sh b/deploy/stratos-base-images/build-base-images.sh new file mode 100755 index 0000000000..fd57fca99b --- /dev/null +++ b/deploy/stratos-base-images/build-base-images.sh @@ -0,0 +1,69 @@ +#!/bin/bash +set -ex + +BASE_IMAGE=opensuse:42.3 +REGISTRY=docker.io +ORGANIZATION=splatform +TAG=dev +PUSH_IMAGES=true + +__DIRNAME="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +DEPLOY_PATH=${__DIRNAME}/.. + +cd ${__DIRNAME} +DOCKERFILES=$(ls *.tmpl) +pushd $(mktemp -d) +curl -sSO https://raw.githubusercontent.com/tests-always-included/mo/master/mo +chmod +x mo + +for i in ${DOCKERFILES}; do + ./mo ${__DIRNAME}/$i > ${i/.tmpl} +done + +build_and_push_image() { + image_name=$1 + docker_file=$2 + docker build . -f $docker_file -t ${REGISTRY}/${ORGANIZATION}/${image_name}:${TAG} + docker push ${REGISTRY}/${ORGANIZATION}/${image_name}:${TAG} +} +# Base image with node installed +build_ui_base(){ + build_and_push_image stratos-ui-base Dockerfile.stratos-ui-base +} + +build_nginx_base(){ + build_and_push_image stratos-nginx-base Dockerfile.stratos-nginx-base +} + +build_bk_base(){ + build_and_push_image stratos-bk-base Dockerfile.stratos-bk-base +} + +build_bk_build_base(){ + build_and_push_image stratos-bk-build-base Dockerfile.stratos-bk-build-base +} + +build_goose_base(){ + build_and_push_image stratos-goose-base Dockerfile.stratos-goose-base +} + +build_portal_proxy_builder(){ + export TAG=dev + pushd ${DEPLOY_PATH}/ + tools/build-push-proxy-builder-image.sh + popd +} + +# Used building the UI +build_ui_base; +# Used for running the backend +build_bk_base; +# Used for goose +build_goose_base; +# Used for hosting nginx +build_nginx_base; +# Used for stratos-proxy-builder base +build_bk_build_base; +# Used for building the backend +build_portal_proxy_builder; +rm -f mo; \ No newline at end of file diff --git a/deploy/tools/build-push-proxy-builder-image.sh b/deploy/tools/build-push-proxy-builder-image.sh index dcc803b10b..909d148427 100755 --- a/deploy/tools/build-push-proxy-builder-image.sh +++ b/deploy/tools/build-push-proxy-builder-image.sh @@ -35,17 +35,17 @@ docker run \ -e HOME=/stratos-ui \ --volume ${PWD}/glide-cache:/.glide \ --volume $PWD/../:/stratos-ui \ - splatform/stratos-bk-build-base:latest \ + splatform/stratos-bk-build-base:dev \ sh /stratos-ui/run-glide.sh -# Generate NPM cache +# # Generate NPM cache docker run \ -ti \ --rm \ --volume ${PWD}/npm-cache:/root/.npm \ --volume $PWD/..:/stratos-ui \ - splatform/stratos-bk-build-base:latest \ - sh -c "cd /stratos-ui && npm install" + splatform/stratos-bk-build-base:dev \ + bash -c "cd /stratos-ui && npm install" docker build --tag ${NAME} \ --file Dockerfile.bk.build . @@ -57,6 +57,6 @@ rm -rf ../vendor/ popd -echo "Tag and push the shared image" +echo "Tag ${SHARED_IMAGE_URL} and push the shared image" docker tag ${NAME} ${SHARED_IMAGE_URL} docker push ${SHARED_IMAGE_URL} From 744105d8129ef354382076839b6fca5cb8b8f7cb Mon Sep 17 00:00:00 2001 From: Irfan Habib Date: Mon, 9 Oct 2017 14:34:00 +0100 Subject: [PATCH 2/7] Update build-push-proxy-builder-image.sh --- deploy/tools/build-push-proxy-builder-image.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deploy/tools/build-push-proxy-builder-image.sh b/deploy/tools/build-push-proxy-builder-image.sh index 909d148427..35d3816f82 100755 --- a/deploy/tools/build-push-proxy-builder-image.sh +++ b/deploy/tools/build-push-proxy-builder-image.sh @@ -38,7 +38,7 @@ docker run \ splatform/stratos-bk-build-base:dev \ sh /stratos-ui/run-glide.sh -# # Generate NPM cache +# Generate NPM cache docker run \ -ti \ --rm \ From e06a07e653973ff958cbad4ba33a2f11fa73d948 Mon Sep 17 00:00:00 2001 From: Irfan Habib Date: Tue, 10 Oct 2017 13:21:44 +0100 Subject: [PATCH 3/7] Migrate Kubernetes deployment images to opensuse --- deploy/Dockerfile.bk-preflight.dev | 9 +-- deploy/Dockerfile.bk.k8s | 7 +- deploy/build-base-images.sh | 65 ------------------- .../ci/tasks/stratos-ui/prep-proxy-image.yml | 4 +- deploy/ci/tasks/stratos-ui/run-tests.yml | 2 +- deploy/containers/nginx/Dockerfile.dc | 2 +- deploy/containers/nginx/Dockerfile.k8s | 2 +- deploy/db/Dockerfile.k8s.postflight-job | 6 +- deploy/db/Dockerfile.preflight-job | 3 +- deploy/db/scripts/run-postflight-job.k8s.sh | 2 +- deploy/db/scripts/run-preflight-job.sh | 2 +- deploy/docker-compose/build.sh | 10 +-- deploy/kubernetes/build.sh | 10 +-- deploy/provision.sh | 4 +- .../Dockerfile.stratos-bk-build-base.tmpl | 17 +---- .../Dockerfile.stratos-go-base.tmpl | 15 +++++ .../Dockerfile.stratos-goose-base.tmpl | 8 +-- .../Dockerfile.stratos-preflight-base.tmpl | 2 + .../Dockerfile.stratos-ui-base.tmpl | 6 +- .../stratos-base-images/build-base-images.sh | 28 +++++++- deploy/tools/Dockerfile.bk.build-base | 33 ---------- .../tools/build-postflight-image-builder.sh | 10 ++- deploy/tools/generate_cert.sh | 2 +- 23 files changed, 78 insertions(+), 171 deletions(-) delete mode 100644 deploy/build-base-images.sh create mode 100644 deploy/stratos-base-images/Dockerfile.stratos-go-base.tmpl create mode 100644 deploy/stratos-base-images/Dockerfile.stratos-preflight-base.tmpl delete mode 100644 deploy/tools/Dockerfile.bk.build-base diff --git a/deploy/Dockerfile.bk-preflight.dev b/deploy/Dockerfile.bk-preflight.dev index 3d9f1d95d4..0e4f7dd489 100644 --- a/deploy/Dockerfile.bk-preflight.dev +++ b/deploy/Dockerfile.bk-preflight.dev @@ -1,13 +1,10 @@ -FROM alpine:latest - -RUN apk update && \ - apk add ca-certificates openssl git &&\ - mkdir -p /srv +FROM splatform/stratos-preflight-base:dev +RUN mkdir -p /srv WORKDIR /srv COPY outputs/* /srv/ COPY /deploy/db/scripts/run-preflight-job.sh /run-preflight-job.sh COPY /deploy/tools/generate_cert.sh /generate_cert.sh RUN chmod +x portal-proxy EXPOSE 443 -CMD ["sh", "-c", "/run-preflight-job.sh; /srv/portal-proxy"] +CMD ["bash", "-c", "/run-preflight-job.sh; /srv/portal-proxy"] diff --git a/deploy/Dockerfile.bk.k8s b/deploy/Dockerfile.bk.k8s index 8b19710fc8..73b31a0995 100644 --- a/deploy/Dockerfile.bk.k8s +++ b/deploy/Dockerfile.bk.k8s @@ -1,10 +1,5 @@ -FROM alpine:latest +FROM splatform/stratos-bk-base:dev -RUN apk update && \ - apk add ca-certificates git &&\ - mkdir -p /srv - -WORKDIR /srv COPY outputs/* /srv/ RUN chmod +x portal-proxy EXPOSE 443 diff --git a/deploy/build-base-images.sh b/deploy/build-base-images.sh deleted file mode 100644 index 024e3116dd..0000000000 --- a/deploy/build-base-images.sh +++ /dev/null @@ -1,65 +0,0 @@ -#!/bin/bash - -BASE_IMAGE=opensuse:42.3 -REGISTRY=docker.io -ORGANIZATION=splatform -TAG=dev -PUSH_IMAGES= - -build_and_push_image() { - image_name=$1 - docker build . -t ${REGISTRY}/${ORGANIZATION}/${image_name}:${TAG} - if [ -z ${PUSH_IMAGES} ]; then - docker push ${REGISTRY}/${ORGANIZATION}/${image_name}:${TAG} - fi -} -# Base image with node installed -build_ui_base(){ - - tmp_dir=$(mktemp -d) - pushd $tmp_dir - cat << EOF > Dockerfile - FROM ${BASE_IMAGE} - - RUN zypper -n ref && \ - zypper -n up && \ - zypper in -y wget tar - RUN wget https://nodejs.org/dist/v6.11.4/node-v6.11.4-linux-x64.tar.xz && \ - tar -xf node-v6.11.4-linux-x64.tar.xz - ENV PATH $PATH:node-v6.11.4-linux-x64/bin -EOF - build_and_push_image stratos-ui-base - popd -} - -build_nginx_base(){ - tmp_dir=$(mktemp -d) - pushd $tmp_dir - cat << EOF > Dockerfile - -EOF - build_and_push_image stratos-nginx-base - popd -} - -build_bk_base(){ - tmp_dir=$(mktemp -d) - pushd $tmp_dir - cat << EOF > Dockerfile - -EOF - build_and_push_image stratos-bk-base - popd -} - -build_goose_base(){ - tmp_dir=$(mktemp -d) - pushd $tmp_dir - cat << EOF > Dockerfile - FROM ${BASE_IMAGE} - RUN zypper install -y go - RUN go get bitbucket.org/liamstask/goose/cmd/goose -EOF - build_and_push_image stratos-goose-base - popd -} \ No newline at end of file diff --git a/deploy/ci/tasks/stratos-ui/prep-proxy-image.yml b/deploy/ci/tasks/stratos-ui/prep-proxy-image.yml index 4bf4f2af92..8baab454bf 100644 --- a/deploy/ci/tasks/stratos-ui/prep-proxy-image.yml +++ b/deploy/ci/tasks/stratos-ui/prep-proxy-image.yml @@ -3,8 +3,8 @@ platform: linux image_resource: type: docker-image source: - repository: ci-registry.ngrok.io:80/susetest/console-proxy-builder - tag: "latest" + repository: ci-registry.ngrok.io:80/splatform/stratos-proxy-builder + tag: "dev" insecure_registries: [ "ci-registry.ngrok.io:80" ] inputs: diff --git a/deploy/ci/tasks/stratos-ui/run-tests.yml b/deploy/ci/tasks/stratos-ui/run-tests.yml index c93959ba14..147c20a1b2 100644 --- a/deploy/ci/tasks/stratos-ui/run-tests.yml +++ b/deploy/ci/tasks/stratos-ui/run-tests.yml @@ -55,7 +55,7 @@ run: cat ../build/secrets.json - for image in splatform/stratos-goose postgres:latest nginx:1.11 splatform/stratos-uaa java:openjdk-8u66-jre alpine:latest splatform/stratos-concourse; do + for image in splatform/stratos-goose-base:dev splatform/stratos-bk-base:dev splatform/stratos-nginx-base:dev splatform/stratos-uaa splatform/stratos-concourse; do docker pull ${REGISTRY_NAME}/$image docker tag ${REGISTRY_NAME}/$image $image done diff --git a/deploy/containers/nginx/Dockerfile.dc b/deploy/containers/nginx/Dockerfile.dc index 97fa5e8252..0b8946ab11 100644 --- a/deploy/containers/nginx/Dockerfile.dc +++ b/deploy/containers/nginx/Dockerfile.dc @@ -1,4 +1,4 @@ -FROM nginx:1.11 +FROM splatform/stratos-nginx-base:dev RUN mkdir -p /etc/secrets/ && \ openssl req -batch -new -newkey rsa:2048 -days 365 -nodes -x509 -keyout /etc/secrets/server.key -out /etc/secrets/server.crt && \ diff --git a/deploy/containers/nginx/Dockerfile.k8s b/deploy/containers/nginx/Dockerfile.k8s index b771dfbc00..0e32058ea4 100644 --- a/deploy/containers/nginx/Dockerfile.k8s +++ b/deploy/containers/nginx/Dockerfile.k8s @@ -1,4 +1,4 @@ -FROM nginx:1.11 +FROM splatform/stratos-nginx-base:dev RUN mkdir -p /usr/share/doc/suse COPY ./LICENSE.txt /usr/share/doc/suse/LICENSE.txt diff --git a/deploy/db/Dockerfile.k8s.postflight-job b/deploy/db/Dockerfile.k8s.postflight-job index ab5cc9edf6..4c22c5744f 100644 --- a/deploy/db/Dockerfile.k8s.postflight-job +++ b/deploy/db/Dockerfile.k8s.postflight-job @@ -1,8 +1,6 @@ -FROM golang:1.8-alpine +FROM splatform/stratos-goose-base:dev -RUN apk update && \ - apk add postgresql-client mariadb-client git gcc musl-dev -RUN go get bitbucket.org/liamstask/goose/lib/goose +RUN zypper -n in postgresql mariadb-client RUN go get github.com/go-sql-driver/mysql COPY goose /usr/local/bin/ COPY deploy/db/dbconf.yml db/dbconf.yml diff --git a/deploy/db/Dockerfile.preflight-job b/deploy/db/Dockerfile.preflight-job index 377c0bd054..03c871a7b5 100644 --- a/deploy/db/Dockerfile.preflight-job +++ b/deploy/db/Dockerfile.preflight-job @@ -1,5 +1,4 @@ -FROM debian:jessie -RUN export DEBIAN_FRONTEND=noninteractive && apt-get update && apt-get install -y openssl +FROM splatform/stratos-preflight-base:dev COPY /deploy/db/scripts/run-preflight-job.sh /run-preflight-job.sh COPY /deploy/tools/generate_cert.sh /generate_cert.sh CMD ["/run-preflight-job.sh"] diff --git a/deploy/db/scripts/run-postflight-job.k8s.sh b/deploy/db/scripts/run-postflight-job.k8s.sh index 1f59e7e17d..14f88ecbb9 100755 --- a/deploy/db/scripts/run-postflight-job.k8s.sh +++ b/deploy/db/scripts/run-postflight-job.k8s.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash set -e function execStatement { diff --git a/deploy/db/scripts/run-preflight-job.sh b/deploy/db/scripts/run-preflight-job.sh index 12b42ec77c..64bdc75c97 100755 --- a/deploy/db/scripts/run-preflight-job.sh +++ b/deploy/db/scripts/run-preflight-job.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash set -e # Step 1 - Set the lock file on the shared volume diff --git a/deploy/docker-compose/build.sh b/deploy/docker-compose/build.sh index 2990b9d35d..a4a72ccf07 100755 --- a/deploy/docker-compose/build.sh +++ b/deploy/docker-compose/build.sh @@ -176,7 +176,7 @@ function buildProxy { -e GROUP_ID=$(id -g) \ --name stratos-proxy-builder \ --volume $(pwd):/go/src/github.com/SUSE/stratos-ui \ - ${DOCKER_REGISTRY}/${DOCKER_ORG}/stratos-proxy-builder + ${DOCKER_REGISTRY}/${DOCKER_ORG}/stratos-proxy-builder:dev popd > /dev/null 2>&1 popd > /dev/null 2>&1 @@ -192,7 +192,7 @@ function buildGoose { # Build the postflight container echo echo "-- Build & publish the runtime container image for the postflight job" - preloadImage splatform/stratos-goose:latest + preloadImage splatform/stratos-goose-base:dev buildAndPublishImage stratos-dc-goose ./db/Dockerfile.goose.dev ${STRATOS_UI_PATH}/deploy rm -f ${STRATOS_UI_PATH}/goose } @@ -202,7 +202,7 @@ function buildUI { CURRENT_USER=$ echo echo "-- Provision the UI" - preloadImage node:6.9.1 + preloadImage splatform/stratos-nginx-base:dev docker run --rm \ ${RUN_ARGS} \ -v ${STRATOS_UI_PATH}:/usr/src/app \ @@ -211,7 +211,7 @@ function buildUI { -e USER_ID=$(id -u) \ -e GROUP_ID=$(id -g) \ -w /usr/src/app \ - node:6.9.1 \ + splatform/stratos-nginx-base:dev \ /bin/bash ./deploy/provision.sh # Copy the artifacts from the above to the nginx container @@ -222,7 +222,7 @@ function buildUI { # Build and push an image based on the nginx container echo echo "-- Building/publishing the runtime container image for the Console web server" - preloadImage nginx:1.11 + preloadImage splatform/stratos-nginx-base:dev buildAndPublishImage stratos-dc-console Dockerfile.dc ${STRATOS_UI_PATH}/deploy/containers/nginx } diff --git a/deploy/kubernetes/build.sh b/deploy/kubernetes/build.sh index 11c3f2440f..7b66918c89 100755 --- a/deploy/kubernetes/build.sh +++ b/deploy/kubernetes/build.sh @@ -183,7 +183,7 @@ function buildProxy { -e GROUP_ID=$(id -g) \ --name stratos-proxy-builder \ --volume $(pwd):/go/src/github.com/SUSE/stratos-ui \ - ${DOCKER_REGISTRY}/${DOCKER_ORG}/stratos-proxy-builder:test + ${DOCKER_REGISTRY}/${DOCKER_ORG}/stratos-proxy-builder:dev popd > /dev/null 2>&1 popd > /dev/null 2>&1 @@ -201,7 +201,6 @@ function buildPostgres { echo echo "-- Build & publish the runtime container image for postgres" # Pull base image locally and retag - preloadImage postgres:9.4.9 buildAndPublishImage stratos-postgres Dockerfile ${STRATOS_UI_PATH}/deploy/containers/postgres } @@ -209,7 +208,6 @@ function buildPreflightJob { # Build the preflight container echo echo "-- Build & publish the runtime container image for the preflight job" - preloadImage debian:jessie buildAndPublishImage stratos-preflight-job ./deploy/db/Dockerfile.preflight-job ${STRATOS_UI_PATH} } @@ -224,7 +222,7 @@ function buildPostflightJob { --rm \ --name postflight-builder \ --volume $(pwd):/go/bin/ \ - ${DOCKER_REGISTRY}/${DOCKER_ORG}/stratos-postflight-builder:latest + ${DOCKER_REGISTRY}/${DOCKER_ORG}/stratos-postflight-builder:dev mv goose ${STRATOS_UI_PATH}/ buildAndPublishImage stratos-postflight-job ./deploy/db/Dockerfile.k8s.postflight-job ${STRATOS_UI_PATH} rm -f ${STRATOS_UI_PATH}/goose @@ -235,7 +233,6 @@ function buildUI { CURRENT_USER=$ echo echo "-- Provision the UI" - preloadImage node:6.9.1 docker run --rm \ ${RUN_ARGS} \ -v ${STRATOS_UI_PATH}:/usr/src/app \ @@ -244,7 +241,7 @@ function buildUI { -e USER_ID=$(id -u) \ -e GROUP_ID=$(id -g) \ -w /usr/src/app \ - node:6.9.1 \ + splatform/stratos-ui-base:dev \ /bin/bash ./deploy/provision.sh # Copy the artifacts from the above to the nginx container @@ -256,7 +253,6 @@ function buildUI { echo echo "-- Building/publishing the runtime container image for the Console web server" # Download and retag image to save bandwidth - preloadImage nginx:1.11 buildAndPublishImage stratos-console Dockerfile.k8s ${STRATOS_UI_PATH}/deploy/containers/nginx } diff --git a/deploy/provision.sh b/deploy/provision.sh index 6ec8ff85e5..a62fdca0c8 100755 --- a/deploy/provision.sh +++ b/deploy/provision.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash WORK_DIR=$(pwd) @@ -24,4 +24,4 @@ if [ ! -z "${CREATE_USER}" ]; then chown -R ${USER_ID}:${GROUP_ID} node_modules chown -R ${USER_ID}:${GROUP_ID} bower_components chown -R ${USER_ID}:${GROUP_ID} dist -fi +fi \ No newline at end of file diff --git a/deploy/stratos-base-images/Dockerfile.stratos-bk-build-base.tmpl b/deploy/stratos-base-images/Dockerfile.stratos-bk-build-base.tmpl index 8f58a65722..cfa53da025 100644 --- a/deploy/stratos-base-images/Dockerfile.stratos-bk-build-base.tmpl +++ b/deploy/stratos-base-images/Dockerfile.stratos-bk-build-base.tmpl @@ -1,16 +1,5 @@ -FROM {{BASE_IMAGE}} +FROM splatform/stratos-go-base:dev -RUN zypper -n ref && \ -zypper -n up && \ -zypper in -y wget which tar git gcc -RUN wget https://nodejs.org/dist/v6.11.4/node-v6.11.4-linux-x64.tar.xz && \ +RUN cd / && wget https://nodejs.org/dist/v6.11.4/node-v6.11.4-linux-x64.tar.xz && \ tar -xf node-v6.11.4-linux-x64.tar.xz -RUN wget https://storage.googleapis.com/golang/go1.8.4.linux-amd64.tar.gz && \ - tar -xzf go1.8.4.linux-amd64.tar.gz -C /usr/local/ && \ - mkdir -p /go/bin && \ - mkdir -p /go/src -ENV PATH $PATH:/node-v6.11.4-linux-x64/bin:/usr/local/go/bin:/go/bin -ENV GOPATH /go -RUN wget https://glide.sh/get && \ - chmod +x get && \ - ./get +ENV PATH $PATH:/node-v6.11.4-linux-x64/bin diff --git a/deploy/stratos-base-images/Dockerfile.stratos-go-base.tmpl b/deploy/stratos-base-images/Dockerfile.stratos-go-base.tmpl new file mode 100644 index 0000000000..cb5f40e77f --- /dev/null +++ b/deploy/stratos-base-images/Dockerfile.stratos-go-base.tmpl @@ -0,0 +1,15 @@ +FROM {{BASE_IMAGE}} + +RUN zypper -n ref && \ +zypper -n up && \ +zypper in -y wget which tar git gcc +RUN wget https://storage.googleapis.com/golang/go1.8.4.linux-amd64.tar.gz && \ + tar -xzf go1.8.4.linux-amd64.tar.gz -C /usr/local/ && \ + mkdir -p /go/bin && \ + mkdir -p /go/src +ENV PATH $PATH:/usr/local/go/bin:/go/bin +ENV GOPATH /go +RUN wget https://glide.sh/get && \ + chmod +x get && \ + ./get +WORKDIR /go \ No newline at end of file diff --git a/deploy/stratos-base-images/Dockerfile.stratos-goose-base.tmpl b/deploy/stratos-base-images/Dockerfile.stratos-goose-base.tmpl index 363dde6c51..a61563fded 100644 --- a/deploy/stratos-base-images/Dockerfile.stratos-goose-base.tmpl +++ b/deploy/stratos-base-images/Dockerfile.stratos-goose-base.tmpl @@ -1,8 +1,2 @@ -FROM {{BASE_IMAGE}} -RUN zypper -n ref && \ - zypper -n up && \ - zypper in -y go git -RUN mkdir /go -ENV GOPATH /go -WORKDIR /go +FROM splatform/stratos-go-base:dev RUN go get bitbucket.org/liamstask/goose/cmd/goose \ No newline at end of file diff --git a/deploy/stratos-base-images/Dockerfile.stratos-preflight-base.tmpl b/deploy/stratos-base-images/Dockerfile.stratos-preflight-base.tmpl new file mode 100644 index 0000000000..76689eec29 --- /dev/null +++ b/deploy/stratos-base-images/Dockerfile.stratos-preflight-base.tmpl @@ -0,0 +1,2 @@ +FROM {{BASE_IMAGE}} +WORKDIR / \ No newline at end of file diff --git a/deploy/stratos-base-images/Dockerfile.stratos-ui-base.tmpl b/deploy/stratos-base-images/Dockerfile.stratos-ui-base.tmpl index bbd1e7b919..18f504418a 100644 --- a/deploy/stratos-base-images/Dockerfile.stratos-ui-base.tmpl +++ b/deploy/stratos-base-images/Dockerfile.stratos-ui-base.tmpl @@ -3,6 +3,6 @@ FROM {{BASE_IMAGE}} RUN zypper -n ref && \ zypper -n up && \ zypper in -y wget tar git -RUN wget https://nodejs.org/dist/v8.6.0/node-v8.6.0-linux-x64.tar.xz && \ -tar -xf node-v8.6.0-linux-x64.tar.xz -ENV PATH $PATH:/node-v8.6.0-linux-x64/bin \ No newline at end of file +RUN cd / && wget https://nodejs.org/dist/v6.11.4/node-v6.11.4-linux-x64.tar.xz && \ +tar -xf node-v6.11.4-linux-x64.tar.xz +ENV PATH $PATH:/node-v6.11.4-linux-x64/bin diff --git a/deploy/stratos-base-images/build-base-images.sh b/deploy/stratos-base-images/build-base-images.sh index fd57fca99b..5e1099492c 100755 --- a/deploy/stratos-base-images/build-base-images.sh +++ b/deploy/stratos-base-images/build-base-images.sh @@ -17,15 +17,22 @@ curl -sSO https://raw.githubusercontent.com/tests-always-included/mo/master/mo chmod +x mo for i in ${DOCKERFILES}; do - ./mo ${__DIRNAME}/$i > ${i/.tmpl} + BASE_IMAGE=${BASE_IMAGE} ./mo ${__DIRNAME}/$i > ${i/.tmpl} done + +pwd build_and_push_image() { image_name=$1 docker_file=$2 docker build . -f $docker_file -t ${REGISTRY}/${ORGANIZATION}/${image_name}:${TAG} docker push ${REGISTRY}/${ORGANIZATION}/${image_name}:${TAG} } +# Base image with node installed +build_go_base(){ + build_and_push_image stratos-go-base Dockerfile.stratos-go-base +} + # Base image with node installed build_ui_base(){ build_and_push_image stratos-ui-base Dockerfile.stratos-ui-base @@ -48,12 +55,23 @@ build_goose_base(){ } build_portal_proxy_builder(){ - export TAG=dev pushd ${DEPLOY_PATH}/ - tools/build-push-proxy-builder-image.sh + TAG=dev tools/build-push-proxy-builder-image.sh popd } +build_postflight_job_base(){ + pushd ${DEPLOY_PATH}/ + TAG=dev tools/build-postflight-image-builder.sh + popd +} + +build_preflight_job_base(){ + build_and_push_image stratos-preflight-base Dockerfile.stratos-preflight-base +} + +# Base with go +# build_go_base # Used building the UI build_ui_base; # Used for running the backend @@ -66,4 +84,8 @@ build_nginx_base; build_bk_build_base; # Used for building the backend build_portal_proxy_builder; +# Used for building the postflight job image +build_postflight_job_base; +# Used for building the preflight job image +build_preflight_job_base; rm -f mo; \ No newline at end of file diff --git a/deploy/tools/Dockerfile.bk.build-base b/deploy/tools/Dockerfile.bk.build-base deleted file mode 100644 index aeadaab8f8..0000000000 --- a/deploy/tools/Dockerfile.bk.build-base +++ /dev/null @@ -1,33 +0,0 @@ -FROM golang:1.8-alpine - -ENV VERSION=v6.10.3 NPM_VERSION=3 - -# Build, install Node and Glide -RUN apk update && \ - apk add --no-cache gcc musl-dev curl git openssl && \ - apk add --no-cache make gcc g++ libgcc libstdc++ python linux-headers binutils-gold gnupg libstdc++ && \ - gpg --keyserver ha.pool.sks-keyservers.net --recv-keys \ - 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \ - FD3A5288F042B6850C66B31F09FE44734EB7990E \ - 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \ - DD8F2338BAE7501E3DD5AC78C273792F7D83545D \ - C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \ - B9AE9905FFD7803F25714661B63B535A4C206CA9 \ - 56730D5401028683275BD23C23EFEFE93C4CFFFE && \ - curl -sSLO https://nodejs.org/dist/${VERSION}/node-${VERSION}.tar.xz && \ - curl -sSL https://nodejs.org/dist/${VERSION}/SHASUMS256.txt.asc | gpg --batch --decrypt | \ - grep " node-${VERSION}.tar.xz\$" | sha256sum -c | grep . && \ - tar -xf node-${VERSION}.tar.xz && \ - cd node-${VERSION} && \ - ./configure --prefix=/usr && \ - make -j$(getconf _NPROCESSORS_ONLN) && \ - make install && \ - cd / && \ - if [ -x /usr/bin/npm ]; then \ - npm install -g npm@${NPM_VERSION} && \ - find /usr/lib/node_modules/npm -name test -o -name .bin -type d | xargs rm -rf; \ - fi && \ - curl https://glide.sh/get | sh && \ - rm -rf /node-${VERSION}* /usr/share/man /tmp/* /var/cache/apk/* \ - /root/.npm /root/.node-gyp /root/.gnupg /usr/lib/node_modules/npm/man \ - /usr/lib/node_modules/npm/doc /usr/lib/node_modules/npm/html /usr/lib/node_modules/npm/scripts diff --git a/deploy/tools/build-postflight-image-builder.sh b/deploy/tools/build-postflight-image-builder.sh index d4273df9c4..f02bad6962 100755 --- a/deploy/tools/build-postflight-image-builder.sh +++ b/deploy/tools/build-postflight-image-builder.sh @@ -1,9 +1,9 @@ #!/usr/bin/env bash DIR_NAME=$(mktemp -d) -DOCKER_ORGANISATION=susetest -IMAGE_NAME=hsc-postflight-builder -TAG=latest +DOCKER_ORGANISATION=${DOCKER_ORG:-splatform} +IMAGE_NAME=stratos-postflight-builder +TAG=${TAG:-test} while getopts ":ho:t:p" opt ; do case $opt in @@ -42,8 +42,6 @@ ENTRYPOINT_SCRIPT=${DIR_NAME}/build-goose.sh cat << EOT >> ${ENTRYPOINT_SCRIPT} #!/usr/bin/env sh -apk update -apk add git gcc musl-dev go get 'bitbucket.org/liamstask/goose/cmd/goose' EOT @@ -52,7 +50,7 @@ chmod +x ${DIR_NAME}/build-goose.sh # Write out Dockerfile DOCKERFILE=${DIR_NAME}/Dockerfile cat << EOT >> ${DOCKERFILE} -FROM golang:alpine +FROM splatform/stratos-go-base:dev ADD build-goose.sh /build-goose.sh CMD ["/build-goose.sh"] diff --git a/deploy/tools/generate_cert.sh b/deploy/tools/generate_cert.sh index a49e328354..4c7b81b827 100755 --- a/deploy/tools/generate_cert.sh +++ b/deploy/tools/generate_cert.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # Settings devcerts_path=${CERTS_PATH:-portal-proxy-output/dev-certs} From e045a48fa6943224274360035070a9e03cde773b Mon Sep 17 00:00:00 2001 From: Irfan Habib Date: Wed, 25 Oct 2017 11:53:35 +0100 Subject: [PATCH 4/7] Updates in response to feedback --- deploy/Dockerfile.bk-preflight.dev | 2 +- deploy/Dockerfile.bk.build | 2 +- deploy/Dockerfile.bk.dev | 2 +- deploy/Dockerfile.bk.k8s | 2 +- deploy/Dockerfile.ui.dev | 2 +- deploy/build_portal_proxy.sh | 2 +- deploy/ci/tasks/stratos-ui/run-tests.yml | 2 +- deploy/containers/nginx/Dockerfile.dc | 2 +- deploy/containers/nginx/Dockerfile.dev | 2 +- deploy/containers/nginx/Dockerfile.k8s | 2 +- deploy/db/Dockerfile.goose.dev | 2 +- deploy/db/Dockerfile.k8s.postflight-job | 2 +- deploy/db/Dockerfile.preflight-job | 2 +- deploy/docker-compose/build.sh | 10 ++-- deploy/kubernetes/build.sh | 6 +- .../Dockerfile.stratos-bk-build-base.tmpl | 2 +- ... => Dockerfile.stratos-go-build-base.tmpl} | 0 .../Dockerfile.stratos-goose-base.tmpl | 2 +- ... => Dockerfile.stratos-ui-build-base.tmpl} | 0 .../stratos-base-images/build-base-images.sh | 58 ++++++++++++++++--- .../tools/build-postflight-image-builder.sh | 2 +- .../tools/build-push-proxy-builder-image.sh | 4 +- 22 files changed, 76 insertions(+), 34 deletions(-) rename deploy/stratos-base-images/{Dockerfile.stratos-go-base.tmpl => Dockerfile.stratos-go-build-base.tmpl} (100%) rename deploy/stratos-base-images/{Dockerfile.stratos-ui-base.tmpl => Dockerfile.stratos-ui-build-base.tmpl} (100%) diff --git a/deploy/Dockerfile.bk-preflight.dev b/deploy/Dockerfile.bk-preflight.dev index 0e4f7dd489..d21a4bfc49 100644 --- a/deploy/Dockerfile.bk-preflight.dev +++ b/deploy/Dockerfile.bk-preflight.dev @@ -1,4 +1,4 @@ -FROM splatform/stratos-preflight-base:dev +FROM splatform/stratos-preflight-base:opensuse RUN mkdir -p /srv WORKDIR /srv diff --git a/deploy/Dockerfile.bk.build b/deploy/Dockerfile.bk.build index 56da36f2a9..e1cfd5fce0 100644 --- a/deploy/Dockerfile.bk.build +++ b/deploy/Dockerfile.bk.build @@ -1,4 +1,4 @@ -FROM splatform/stratos-bk-build-base:dev +FROM splatform/stratos-bk-build-base:opensuse RUN mkdir -p /go/src/github.com/SUSE/stratos-ui WORKDIR /go/src/github.com/SUSE/stratos-ui diff --git a/deploy/Dockerfile.bk.dev b/deploy/Dockerfile.bk.dev index 9d7ec394b0..2d150199c6 100644 --- a/deploy/Dockerfile.bk.dev +++ b/deploy/Dockerfile.bk.dev @@ -1,4 +1,4 @@ -FROM splatform/stratos-bk-base:dev +FROM splatform/stratos-bk-base:opensuse COPY outputs/* /srv/ COPY dev-certs dev-certs diff --git a/deploy/Dockerfile.bk.k8s b/deploy/Dockerfile.bk.k8s index 73b31a0995..fc00fa25fa 100644 --- a/deploy/Dockerfile.bk.k8s +++ b/deploy/Dockerfile.bk.k8s @@ -1,4 +1,4 @@ -FROM splatform/stratos-bk-base:dev +FROM splatform/stratos-bk-base:opensuse COPY outputs/* /srv/ RUN chmod +x portal-proxy diff --git a/deploy/Dockerfile.ui.dev b/deploy/Dockerfile.ui.dev index e9d5b6d04b..fbbc7a4d43 100644 --- a/deploy/Dockerfile.ui.dev +++ b/deploy/Dockerfile.ui.dev @@ -1,4 +1,4 @@ -FROM splatform/stratos-ui-base:dev +FROM splatform/stratos-ui-build-base:opensuse ARG USER_ID diff --git a/deploy/build_portal_proxy.sh b/deploy/build_portal_proxy.sh index 38bba57c6d..cbc7cd7ed7 100755 --- a/deploy/build_portal_proxy.sh +++ b/deploy/build_portal_proxy.sh @@ -14,7 +14,7 @@ docker run -it \ -e GROUP_ID=$(id -g) \ --name console-proxy-builder \ --volume $(pwd):/go/src/github.com/SUSE/stratos-ui \ - splatform/stratos-proxy-builder:dev $* + splatform/stratos-proxy-builder:opensuse $* ret=$? popd diff --git a/deploy/ci/tasks/stratos-ui/run-tests.yml b/deploy/ci/tasks/stratos-ui/run-tests.yml index 147c20a1b2..a29e43e1fe 100644 --- a/deploy/ci/tasks/stratos-ui/run-tests.yml +++ b/deploy/ci/tasks/stratos-ui/run-tests.yml @@ -55,7 +55,7 @@ run: cat ../build/secrets.json - for image in splatform/stratos-goose-base:dev splatform/stratos-bk-base:dev splatform/stratos-nginx-base:dev splatform/stratos-uaa splatform/stratos-concourse; do + for image in splatform/stratos-goose-base:opensuse splatform/stratos-bk-base:opensuse splatform/stratos-nginx-base:opensuse splatform/stratos-uaa splatform/stratos-concourse; do docker pull ${REGISTRY_NAME}/$image docker tag ${REGISTRY_NAME}/$image $image done diff --git a/deploy/containers/nginx/Dockerfile.dc b/deploy/containers/nginx/Dockerfile.dc index 0b8946ab11..7af4708169 100644 --- a/deploy/containers/nginx/Dockerfile.dc +++ b/deploy/containers/nginx/Dockerfile.dc @@ -1,4 +1,4 @@ -FROM splatform/stratos-nginx-base:dev +FROM splatform/stratos-nginx-base:opensuse RUN mkdir -p /etc/secrets/ && \ openssl req -batch -new -newkey rsa:2048 -days 365 -nodes -x509 -keyout /etc/secrets/server.key -out /etc/secrets/server.crt && \ diff --git a/deploy/containers/nginx/Dockerfile.dev b/deploy/containers/nginx/Dockerfile.dev index ce46b73fbf..b8da877efb 100644 --- a/deploy/containers/nginx/Dockerfile.dev +++ b/deploy/containers/nginx/Dockerfile.dev @@ -1,4 +1,4 @@ -FROM splatform/stratos-nginx-base:dev +FROM splatform/stratos-nginx-base:opensuse RUN mkdir -p /etc/secrets/ && \ openssl req -batch -new -newkey rsa:2048 -days 365 -nodes -x509 -keyout /etc/secrets/server.key -out /etc/secrets/server.crt && \ diff --git a/deploy/containers/nginx/Dockerfile.k8s b/deploy/containers/nginx/Dockerfile.k8s index 0e32058ea4..833215366c 100644 --- a/deploy/containers/nginx/Dockerfile.k8s +++ b/deploy/containers/nginx/Dockerfile.k8s @@ -1,4 +1,4 @@ -FROM splatform/stratos-nginx-base:dev +FROM splatform/stratos-nginx-base:opensuse RUN mkdir -p /usr/share/doc/suse COPY ./LICENSE.txt /usr/share/doc/suse/LICENSE.txt diff --git a/deploy/db/Dockerfile.goose.dev b/deploy/db/Dockerfile.goose.dev index a77ba54876..538562719d 100644 --- a/deploy/db/Dockerfile.goose.dev +++ b/deploy/db/Dockerfile.goose.dev @@ -1,4 +1,4 @@ -FROM splatform/stratos-goose-base:dev +FROM splatform/stratos-goose-base:opensuse WORKDIR /src diff --git a/deploy/db/Dockerfile.k8s.postflight-job b/deploy/db/Dockerfile.k8s.postflight-job index 4c22c5744f..7bb03d8f0c 100644 --- a/deploy/db/Dockerfile.k8s.postflight-job +++ b/deploy/db/Dockerfile.k8s.postflight-job @@ -1,4 +1,4 @@ -FROM splatform/stratos-goose-base:dev +FROM splatform/stratos-goose-base:opensuse RUN zypper -n in postgresql mariadb-client RUN go get github.com/go-sql-driver/mysql diff --git a/deploy/db/Dockerfile.preflight-job b/deploy/db/Dockerfile.preflight-job index 03c871a7b5..0d10115ff2 100644 --- a/deploy/db/Dockerfile.preflight-job +++ b/deploy/db/Dockerfile.preflight-job @@ -1,4 +1,4 @@ -FROM splatform/stratos-preflight-base:dev +FROM splatform/stratos-preflight-base:opensuse COPY /deploy/db/scripts/run-preflight-job.sh /run-preflight-job.sh COPY /deploy/tools/generate_cert.sh /generate_cert.sh CMD ["/run-preflight-job.sh"] diff --git a/deploy/docker-compose/build.sh b/deploy/docker-compose/build.sh index a4a72ccf07..1e2f2be87f 100755 --- a/deploy/docker-compose/build.sh +++ b/deploy/docker-compose/build.sh @@ -176,7 +176,7 @@ function buildProxy { -e GROUP_ID=$(id -g) \ --name stratos-proxy-builder \ --volume $(pwd):/go/src/github.com/SUSE/stratos-ui \ - ${DOCKER_REGISTRY}/${DOCKER_ORG}/stratos-proxy-builder:dev + ${DOCKER_REGISTRY}/${DOCKER_ORG}/stratos-proxy-builder:opensuse popd > /dev/null 2>&1 popd > /dev/null 2>&1 @@ -192,7 +192,7 @@ function buildGoose { # Build the postflight container echo echo "-- Build & publish the runtime container image for the postflight job" - preloadImage splatform/stratos-goose-base:dev + preloadImage splatform/stratos-goose-base:opensuse buildAndPublishImage stratos-dc-goose ./db/Dockerfile.goose.dev ${STRATOS_UI_PATH}/deploy rm -f ${STRATOS_UI_PATH}/goose } @@ -202,7 +202,7 @@ function buildUI { CURRENT_USER=$ echo echo "-- Provision the UI" - preloadImage splatform/stratos-nginx-base:dev + preloadImage splatform/stratos-nginx-base:opensuse docker run --rm \ ${RUN_ARGS} \ -v ${STRATOS_UI_PATH}:/usr/src/app \ @@ -211,7 +211,7 @@ function buildUI { -e USER_ID=$(id -u) \ -e GROUP_ID=$(id -g) \ -w /usr/src/app \ - splatform/stratos-nginx-base:dev \ + splatform/stratos-nginx-base:opensuse \ /bin/bash ./deploy/provision.sh # Copy the artifacts from the above to the nginx container @@ -222,7 +222,7 @@ function buildUI { # Build and push an image based on the nginx container echo echo "-- Building/publishing the runtime container image for the Console web server" - preloadImage splatform/stratos-nginx-base:dev + preloadImage splatform/stratos-nginx-base:opensuse buildAndPublishImage stratos-dc-console Dockerfile.dc ${STRATOS_UI_PATH}/deploy/containers/nginx } diff --git a/deploy/kubernetes/build.sh b/deploy/kubernetes/build.sh index 7b66918c89..5abe8080a3 100755 --- a/deploy/kubernetes/build.sh +++ b/deploy/kubernetes/build.sh @@ -183,7 +183,7 @@ function buildProxy { -e GROUP_ID=$(id -g) \ --name stratos-proxy-builder \ --volume $(pwd):/go/src/github.com/SUSE/stratos-ui \ - ${DOCKER_REGISTRY}/${DOCKER_ORG}/stratos-proxy-builder:dev + ${DOCKER_REGISTRY}/${DOCKER_ORG}/stratos-proxy-builder:opensuse popd > /dev/null 2>&1 popd > /dev/null 2>&1 @@ -222,7 +222,7 @@ function buildPostflightJob { --rm \ --name postflight-builder \ --volume $(pwd):/go/bin/ \ - ${DOCKER_REGISTRY}/${DOCKER_ORG}/stratos-postflight-builder:dev + ${DOCKER_REGISTRY}/${DOCKER_ORG}/stratos-postflight-builder:opensuse mv goose ${STRATOS_UI_PATH}/ buildAndPublishImage stratos-postflight-job ./deploy/db/Dockerfile.k8s.postflight-job ${STRATOS_UI_PATH} rm -f ${STRATOS_UI_PATH}/goose @@ -241,7 +241,7 @@ function buildUI { -e USER_ID=$(id -u) \ -e GROUP_ID=$(id -g) \ -w /usr/src/app \ - splatform/stratos-ui-base:dev \ + splatform/stratos-ui-build-base:opensuse \ /bin/bash ./deploy/provision.sh # Copy the artifacts from the above to the nginx container diff --git a/deploy/stratos-base-images/Dockerfile.stratos-bk-build-base.tmpl b/deploy/stratos-base-images/Dockerfile.stratos-bk-build-base.tmpl index cfa53da025..1abd389d3e 100644 --- a/deploy/stratos-base-images/Dockerfile.stratos-bk-build-base.tmpl +++ b/deploy/stratos-base-images/Dockerfile.stratos-bk-build-base.tmpl @@ -1,4 +1,4 @@ -FROM splatform/stratos-go-base:dev +FROM splatform/stratos-go-build-base:opensuse RUN cd / && wget https://nodejs.org/dist/v6.11.4/node-v6.11.4-linux-x64.tar.xz && \ tar -xf node-v6.11.4-linux-x64.tar.xz diff --git a/deploy/stratos-base-images/Dockerfile.stratos-go-base.tmpl b/deploy/stratos-base-images/Dockerfile.stratos-go-build-base.tmpl similarity index 100% rename from deploy/stratos-base-images/Dockerfile.stratos-go-base.tmpl rename to deploy/stratos-base-images/Dockerfile.stratos-go-build-base.tmpl diff --git a/deploy/stratos-base-images/Dockerfile.stratos-goose-base.tmpl b/deploy/stratos-base-images/Dockerfile.stratos-goose-base.tmpl index a61563fded..b0415979fd 100644 --- a/deploy/stratos-base-images/Dockerfile.stratos-goose-base.tmpl +++ b/deploy/stratos-base-images/Dockerfile.stratos-goose-base.tmpl @@ -1,2 +1,2 @@ -FROM splatform/stratos-go-base:dev +FROM splatform/stratos-go-build-base:opensuse RUN go get bitbucket.org/liamstask/goose/cmd/goose \ No newline at end of file diff --git a/deploy/stratos-base-images/Dockerfile.stratos-ui-base.tmpl b/deploy/stratos-base-images/Dockerfile.stratos-ui-build-base.tmpl similarity index 100% rename from deploy/stratos-base-images/Dockerfile.stratos-ui-base.tmpl rename to deploy/stratos-base-images/Dockerfile.stratos-ui-build-base.tmpl diff --git a/deploy/stratos-base-images/build-base-images.sh b/deploy/stratos-base-images/build-base-images.sh index 5e1099492c..b55652e65e 100755 --- a/deploy/stratos-base-images/build-base-images.sh +++ b/deploy/stratos-base-images/build-base-images.sh @@ -4,8 +4,48 @@ set -ex BASE_IMAGE=opensuse:42.3 REGISTRY=docker.io ORGANIZATION=splatform -TAG=dev -PUSH_IMAGES=true +TAG=opensuse +PROG=$(basename ${BASH_SOURCE[0]}) + +function usage { + echo "usage: $PROG [-b BASE] [-r REGISTRY] [-o ORGANIZATION] [-t TAG] [-p] [h]" + echo " -b Value Base Image" + echo " -r Value Docker registry" + echo " -o Value Organization in Docker registry" + echo " -t Value Tag for images" + echo " -p Push images to registry" + echo " -h Help" + exit 1 +} + + +while getopts "b:r:o:t:ph" opt ; do + case $opt in + b) + BASE_IMAGE=${OPTARG} + ;; + r) + REGISTRY=${OPTARG} + ;; + o) + ORGANIZATION=${OPTARG} + ;; + t) + TAG=${OPTARG} + ;; + p) + PUSH_IMAGES=true + ;; + h) + usage + ;; + \?) + echo "Invalid option -$OPTARG" >&2 + usage + ;; + esac +done + __DIRNAME="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" DEPLOY_PATH=${__DIRNAME}/.. @@ -26,16 +66,18 @@ build_and_push_image() { image_name=$1 docker_file=$2 docker build . -f $docker_file -t ${REGISTRY}/${ORGANIZATION}/${image_name}:${TAG} - docker push ${REGISTRY}/${ORGANIZATION}/${image_name}:${TAG} + if [ ! -z ${PUSH_IMAGES} ]; then + docker push ${REGISTRY}/${ORGANIZATION}/${image_name}:${TAG} + fi } # Base image with node installed build_go_base(){ - build_and_push_image stratos-go-base Dockerfile.stratos-go-base + build_and_push_image stratos-go-build-base Dockerfile.stratos-go-build-base } # Base image with node installed build_ui_base(){ - build_and_push_image stratos-ui-base Dockerfile.stratos-ui-base + build_and_push_image stratos-ui-build-base Dockerfile.stratos-ui-build-base } build_nginx_base(){ @@ -56,13 +98,13 @@ build_goose_base(){ build_portal_proxy_builder(){ pushd ${DEPLOY_PATH}/ - TAG=dev tools/build-push-proxy-builder-image.sh + TAG=opensuse tools/build-push-proxy-builder-image.sh popd } build_postflight_job_base(){ pushd ${DEPLOY_PATH}/ - TAG=dev tools/build-postflight-image-builder.sh + TAG=opensuse tools/build-postflight-image-builder.sh popd } @@ -71,7 +113,7 @@ build_preflight_job_base(){ } # Base with go -# build_go_base +build_go_base # Used building the UI build_ui_base; # Used for running the backend diff --git a/deploy/tools/build-postflight-image-builder.sh b/deploy/tools/build-postflight-image-builder.sh index f02bad6962..48cce4538b 100755 --- a/deploy/tools/build-postflight-image-builder.sh +++ b/deploy/tools/build-postflight-image-builder.sh @@ -50,7 +50,7 @@ chmod +x ${DIR_NAME}/build-goose.sh # Write out Dockerfile DOCKERFILE=${DIR_NAME}/Dockerfile cat << EOT >> ${DOCKERFILE} -FROM splatform/stratos-go-base:dev +FROM splatform/stratos-go-build-base:opensuse ADD build-goose.sh /build-goose.sh CMD ["/build-goose.sh"] diff --git a/deploy/tools/build-push-proxy-builder-image.sh b/deploy/tools/build-push-proxy-builder-image.sh index 35d3816f82..923564a14d 100755 --- a/deploy/tools/build-push-proxy-builder-image.sh +++ b/deploy/tools/build-push-proxy-builder-image.sh @@ -35,7 +35,7 @@ docker run \ -e HOME=/stratos-ui \ --volume ${PWD}/glide-cache:/.glide \ --volume $PWD/../:/stratos-ui \ - splatform/stratos-bk-build-base:dev \ + splatform/stratos-bk-build-base:opensuse \ sh /stratos-ui/run-glide.sh # Generate NPM cache @@ -44,7 +44,7 @@ docker run \ --rm \ --volume ${PWD}/npm-cache:/root/.npm \ --volume $PWD/..:/stratos-ui \ - splatform/stratos-bk-build-base:dev \ + splatform/stratos-bk-build-base:opensuse \ bash -c "cd /stratos-ui && npm install" docker build --tag ${NAME} \ From 9f9014252f4a2bf17b416916392087c48683e6ee Mon Sep 17 00:00:00 2001 From: Irfan Habib Date: Wed, 25 Oct 2017 11:54:58 +0100 Subject: [PATCH 5/7] Update prep-proxy-image.yml --- deploy/ci/tasks/stratos-ui/prep-proxy-image.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deploy/ci/tasks/stratos-ui/prep-proxy-image.yml b/deploy/ci/tasks/stratos-ui/prep-proxy-image.yml index 8baab454bf..ec7cb22ddc 100644 --- a/deploy/ci/tasks/stratos-ui/prep-proxy-image.yml +++ b/deploy/ci/tasks/stratos-ui/prep-proxy-image.yml @@ -4,7 +4,7 @@ image_resource: type: docker-image source: repository: ci-registry.ngrok.io:80/splatform/stratos-proxy-builder - tag: "dev" + tag: "opensuse" insecure_registries: [ "ci-registry.ngrok.io:80" ] inputs: From e5ed91fa471b4bba423f9808a53047f06320b6a8 Mon Sep 17 00:00:00 2001 From: Irfan Habib Date: Wed, 25 Oct 2017 11:55:17 +0100 Subject: [PATCH 6/7] Update compile.sh --- deploy/compile.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/deploy/compile.sh b/deploy/compile.sh index 3185ce676d..cfd8e5bf4c 100755 --- a/deploy/compile.sh +++ b/deploy/compile.sh @@ -1,8 +1,6 @@ #!/bin/bash set -e -env -ls / rm -rf node_modules npm install npm run build-backend From bab9856e0c579b619101d9926bd44afc5a907931 Mon Sep 17 00:00:00 2001 From: Irfan Habib Date: Wed, 25 Oct 2017 13:27:20 +0100 Subject: [PATCH 7/7] Remove new line to trigger CI --- deploy/Dockerfile.ui.dev | 1 - 1 file changed, 1 deletion(-) diff --git a/deploy/Dockerfile.ui.dev b/deploy/Dockerfile.ui.dev index fbbc7a4d43..5a7162f6ec 100644 --- a/deploy/Dockerfile.ui.dev +++ b/deploy/Dockerfile.ui.dev @@ -1,6 +1,5 @@ FROM splatform/stratos-ui-build-base:opensuse - ARG USER_ID ARG GROUP_ID ARG USER_NAME