From bd258798c049a45ab4b3670fd00328be83f99d7e Mon Sep 17 00:00:00 2001 From: Alexey Kuklin <alex@kuklin.eu> Date: Sun, 27 Oct 2019 02:09:57 +0300 Subject: [PATCH] multistage and local build --- .gitlab-ci.yml | 9 +++++---- Dockerfile | 43 +++++++++++++++++++++---------------------- Dockerfile-x86 | 35 ----------------------------------- 3 files changed, 26 insertions(+), 61 deletions(-) delete mode 100644 Dockerfile-x86 diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4cd7565..5d0aaa5 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -32,7 +32,7 @@ ppc64le: tags: - ppc64le script: - - docker build --build-arg CI_COMMIT_SHA=$CI_COMMIT_SHA --build-arg CI_COMMIT_REF_NAME=$CI_COMMIT_REF_NAME --build-arg CI_PROJECT_NAME=$CI_PROJECT_NAME --build-arg CI_JOB_TOKEN=$CI_JOB_TOKEN --pull -t $IMAGE_ppc64le -f Dockerfile . + - docker build --build-arg CI_COMMIT_SHA=$CI_COMMIT_SHA --build-arg CI_COMMIT_REF_NAME=$CI_COMMIT_REF_NAME --build-arg CI_PROJECT_NAME=$CI_PROJECT_NAME --build-arg GITLAB_LOGIN=gitlab-ci-token --build-arg GITLAB_PASSWORD=$CI_JOB_TOKEN --pull -t $IMAGE_ppc64le -f Dockerfile . - docker push $IMAGE_ppc64le amd64: @@ -41,7 +41,7 @@ amd64: tags: - amd64 script: - - docker build --build-arg CI_COMMIT_SHA=$CI_COMMIT_SHA --build-arg CI_COMMIT_REF_NAME=$CI_COMMIT_REF_NAME --build-arg CI_PROJECT_NAME=$CI_PROJECT_NAME --build-arg CI_JOB_TOKEN=$CI_JOB_TOKEN --pull -t $IMAGE_amd64 -f Dockerfile . + - docker build --build-arg CI_COMMIT_SHA=$CI_COMMIT_SHA --build-arg CI_COMMIT_REF_NAME=$CI_COMMIT_REF_NAME --build-arg CI_PROJECT_NAME=$CI_PROJECT_NAME --build-arg GITLAB_LOGIN=gitlab-ci-token --build-arg GITLAB_PASSWORD=$CI_JOB_TOKEN --pull -t $IMAGE_amd64 -f Dockerfile . - docker push $IMAGE_amd64 manifest: @@ -63,8 +63,9 @@ deploy: - master script: - apk add curl - - for ref in $DEPLOYENVS; do curl -X POST -F token=$TRIGGER_TOKEN -F ref=$ref -F variables[branch]=$CI_COMMIT_REF_NAME $TRIGGER_CODE_BUILD; done - + - for ref in $DEPLOYENVS; do curl -X POST -F token=$TRIGGER_TOKEN -F ref=$ref -F variables[branch]=$CI_COMMIT_REF_NAME $TRIGGER_CODE_BUILD; done + - curl -X POST -F token=$TRIGGER_TOKEN_VCL -F ref=$CI_COMMIT_REF_NAME $TRIGGER_CODE_VCL + duplicate: stage: tech_registry tags: diff --git a/Dockerfile b/Dockerfile index 8f44a42..d490aab 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,39 +1,38 @@ -FROM registry.vereign.com/docker/go-with-dep:master +FROM registry.vereign.com/docker/go-with-dep:with-codecgen -#RUN echo deb http://deb.debian.org/debian buster main > /etc/apt/sources.list.d/buster.list \ -# && apt-get update \ -# && apt-get install -y --no-install-recommends npm zlib1g-dev +ARG GITLAB_LOGIN +ARG GITLAB_PASSWORD ENV GOPATH /srv/ -ENV SERVER_OUT "bin/server" -ENV SERVER_PKG_BUILD ${PKG} ENV PATH "$PATH:/srv/bin/" -ARG CI_JOB_TOKEN ARG CI_PROJECT_NAME ARG CI_COMMIT_REF_NAME ARG CI_COMMIT_SHA ENV CI_PROJECT_NAME ${CI_PROJECT_NAME} -RUN echo project is $CI_PROJECT_NAME && mkdir -p /srv/src/code.vereign.com/code/$CI_PROJECT_NAME +RUN mkdir -p /srv/src/code.vereign.com/code/$CI_PROJECT_NAME COPY . /srv/src/code.vereign.com/code/$CI_PROJECT_NAME/ RUN cd /srv/src/code.vereign.com/code/$CI_PROJECT_NAME && \ - git config --global credential.https://code.vereign.com.username gitlab-ci-token && \ - git config --global credential.helper "store --file /tmp/store" && \ - echo https://gitlab-ci-token:$CI_JOB_TOKEN@code.vereign.com > /tmp/store && cat /tmp/store && \ - export PKG=code.vereign.com/code/$CI_PROJECT_NAME && \ - go get -u github.com/ugorji/go/codec/codecgen && \ - echo PATH $PATH && \ - make && rm /tmp/store - -#FROM debian:stretch -#RUN mkdir -p /srv/src/code.vereign.com/code/ -#COPY --from=0 /srv/src/code.vereign.com/code/data-storage-agent /srv/src/code.vereign.com/code/ -#RUN find /srv/src/code.vereign.com/code/ - -ENTRYPOINT /srv/src/code.vereign.com/code/$CI_PROJECT_NAME/bin/server + git config --global url."https://$GITLAB_LOGIN:$GITLAB_PASSWORD@code.vereign.com".insteadOf "https://code.vereign.com" && \ + dep ensure && \ + go generate vendor/github.com/coreos/etcd/client/keys.go && \ + go build -ldflags="-X code.vereign.com/code/${CI_PROJECT_NAME}/handler.version=${CI_COMMIT_REF_NAME}.${CI_COMMIT_SHA}" -i -v -o /srv/${CI_PROJECT_NAME} code.vereign.com/code/${CI_PROJECT_NAME} + +FROM buildpack-deps:buster-curl + +ARG CI_PROJECT_NAME +ENV CI_PROJECT_NAME ${CI_PROJECT_NAME} + +COPY --from=0 /srv/${CI_PROJECT_NAME} /srv/${CI_PROJECT_NAME} + +WORKDIR /srv + +RUN mkdir -p /srv/src/code.vereign.com/code/key-storage-agent/bin/ && ln /srv/key-storage-agent /srv/src/code.vereign.com/code/key-storage-agent/bin/server && ln -s /srv/ /go + +ENTRYPOINT ["/srv/key-storage-agent"] diff --git a/Dockerfile-x86 b/Dockerfile-x86 deleted file mode 100644 index 27220b5..0000000 --- a/Dockerfile-x86 +++ /dev/null @@ -1,35 +0,0 @@ -FROM registry.vereign.com/docker/go-with-dep:master-x86 - -#RUN echo deb http://deb.debian.org/debian buster main > /etc/apt/sources.list.d/buster.list \ -# && apt-get update \ -# && apt-get install -y --no-install-recommends npm zlib1g-dev - -ENV GOPATH /srv/ -ENV SERVER_OUT "bin/server" -ENV SERVER_PKG_BUILD ${PKG} - -ARG CI_JOB_TOKEN -ARG CI_PROJECT_NAME -ARG CI_COMMIT_REF_NAME -ARG CI_COMMIT_SHA - -ENV CI_PROJECT_NAME ${CI_PROJECT_NAME} - -RUN echo project is $CI_PROJECT_NAME && mkdir -p /srv/src/code.vereign.com/code/$CI_PROJECT_NAME - -COPY . /srv/src/code.vereign.com/code/$CI_PROJECT_NAME/ - -RUN cd /srv/src/code.vereign.com/code/$CI_PROJECT_NAME && \ - git config --global credential.https://code.vereign.com.username gitlab-ci-token && \ - git config --global credential.helper "store --file /tmp/store" && \ - echo https://gitlab-ci-token:$CI_JOB_TOKEN@code.vereign.com > /tmp/store && cat /tmp/store && \ - export PKG=code.vereign.com/code/$CI_PROJECT_NAME && \ - make && rm /tmp/store - -#FROM debian:stretch -#RUN mkdir -p /srv/src/code.vereign.com/code/ -#COPY --from=0 /srv/src/code.vereign.com/code/data-storage-agent /srv/src/code.vereign.com/code/ -#RUN find /srv/src/code.vereign.com/code/ - -ENTRYPOINT /srv/src/code.vereign.com/code/$CI_PROJECT_NAME/bin/server - -- GitLab