gitlab-templates/pipelines/docker-image-build-then-push-to-local-registry.gitlab-ci.yml

38 lines
1.1 KiB
YAML

image: docker:dind
stages:
- build
- deploy
default:
before_script:
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- if ! test -z "$NPMRC"; then echo "NPMRC is in $NPMRC";cp "$NPMRC" /root/.npmrc; fi
build-and-push docker image to local registry:
stage: build
script:
- if ! test -z "$DOCKERFILE_DIRECTORY"; then cd ${DOCKERFILE_DIRECTORY}; fi
- docker build -f "${DOCKERFILE_NAME}" ${DOCKER_EXTRA_OPTS} -t "${CI_REGISTRY_IMAGE}:${DOCKER_IMAGE_TAG}" --progress=plain .
- docker push "${CI_REGISTRY_IMAGE}:${DOCKER_IMAGE_TAG}"
only:
- main
- development
- staging
- develop
push docker to destination registry:
stage: deploy
script:
- if test -z "$DOCKER_REGISTRY"; then exit 0; fi
- docker pull "${CI_REGISTRY_IMAGE}:${DOCKER_IMAGE_TAG}"
- docker tag "${CI_REGISTRY_IMAGE}:${DOCKER_IMAGE_TAG}" "${DOCKER_REGISTRY}:${DOCKER_IMAGE_TAG}"
- docker push "${DOCKER_REGISTRY}:${DOCKER_IMAGE_TAG}"
needs:
- "build-and-push docker image to local registry"
only:
- main
- development
- staging
- develop