Updated for more controlled image pushes
This commit is contained in:
@@ -1,24 +1,19 @@
|
|||||||
image: docker:latest
|
image: docker:latest
|
||||||
|
|
||||||
services:
|
|
||||||
- docker:dind
|
|
||||||
|
|
||||||
stages:
|
stages:
|
||||||
- Build Image
|
- Build Base
|
||||||
- Push Image
|
- Push Images
|
||||||
|
|
||||||
variables:
|
variables:
|
||||||
DOCKER_HOST: tcp://docker:2375/
|
DOCKER_HOST: tcp://docker:2375/
|
||||||
DOCKER_DRIVER: overlay2
|
DOCKER_DRIVER: overlay2
|
||||||
|
|
||||||
build-image:
|
0-build-base:
|
||||||
stage: Build Image
|
stage: Build Base
|
||||||
artifacts:
|
artifacts:
|
||||||
expire_in: 1 week
|
expire_in: 1 week
|
||||||
paths:
|
paths:
|
||||||
- ./images/
|
- ./images/
|
||||||
except:
|
|
||||||
- pushes
|
|
||||||
tags:
|
tags:
|
||||||
- docker
|
- docker
|
||||||
before_script:
|
before_script:
|
||||||
@@ -27,17 +22,43 @@ build-image:
|
|||||||
- docker build --pull --build-arg "IMAGE_TAG=$IMAGE_TAG" -t "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" .
|
- docker build --pull --build-arg "IMAGE_TAG=$IMAGE_TAG" -t "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" .
|
||||||
- docker save --output "./images/$CI_COMMIT_SHORT_SHA.tar" "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA"
|
- docker save --output "./images/$CI_COMMIT_SHORT_SHA.tar" "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA"
|
||||||
|
|
||||||
push-image:
|
1A-push-dev:
|
||||||
stage: Push Image
|
stage: Push Images
|
||||||
dependencies:
|
dependencies:
|
||||||
- build-image
|
- build-image
|
||||||
except:
|
|
||||||
- pushes
|
|
||||||
tags:
|
tags:
|
||||||
- docker
|
- docker
|
||||||
|
before_script:
|
||||||
|
- docker load --input "./images/$CI_COMMIT_SHORT_SHA.tar"
|
||||||
|
- echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin
|
||||||
|
script:
|
||||||
|
- docker tag "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" "$CI_REGISTRY_IMAGE:dev-$IMAGE_TAG-$CI_PIPELINE_ID"
|
||||||
|
- docker push "$CI_REGISTRY_IMAGE:dev-$IMAGE_TAG-$CI_PIPELINE_ID"
|
||||||
|
|
||||||
|
1B-push-version:
|
||||||
|
stage: Push Images
|
||||||
|
dependencies:
|
||||||
|
- build-image
|
||||||
|
tags:
|
||||||
|
- docker
|
||||||
|
when: manual
|
||||||
before_script:
|
before_script:
|
||||||
- docker load --input "./images/$CI_COMMIT_SHORT_SHA.tar"
|
- docker load --input "./images/$CI_COMMIT_SHORT_SHA.tar"
|
||||||
- echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin
|
- echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin
|
||||||
script:
|
script:
|
||||||
- docker tag "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" "$CI_REGISTRY_IMAGE:$IMAGE_TAG"
|
- docker tag "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" "$CI_REGISTRY_IMAGE:$IMAGE_TAG"
|
||||||
- docker push "$CI_REGISTRY_IMAGE:$IMAGE_TAG"
|
- docker push "$CI_REGISTRY_IMAGE:$IMAGE_TAG"
|
||||||
|
|
||||||
|
1C-push-latest:
|
||||||
|
stage: Push Images
|
||||||
|
dependencies:
|
||||||
|
- build-image
|
||||||
|
tags:
|
||||||
|
- docker
|
||||||
|
when: manual
|
||||||
|
before_script:
|
||||||
|
- docker load --input "./images/$CI_COMMIT_SHORT_SHA.tar"
|
||||||
|
- echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin
|
||||||
|
script:
|
||||||
|
- docker tag "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" "$CI_REGISTRY_IMAGE:latest"
|
||||||
|
- docker push "$CI_REGISTRY_IMAGE:latest"
|
||||||
Reference in New Issue
Block a user