image: docker:stable
services:
- docker:dind
variables:
CONTAINER_IMAGE: registry.gitlab.com/$CI_PROJECT_PATH
DOCKER_DRIVER: overlay2
before_script:
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN registry.gitlab.com
stages:
- build
- release
build:
stage: build
except:
- master
script:
- docker pull $CONTAINER_IMAGE:$CI_BUILD_REF_NAME || true
- docker pull $CONTAINER_IMAGE:latest || true
- docker build --cache-from $CONTAINER_IMAGE:latest --cache-from $CONTAINER_IMAGE:$CI_BUILD_REF_NAME --tag $CONTAINER_IMAGE:$CI_BUILD_REF_NAME .
- docker push $CONTAINER_IMAGE:$CI_BUILD_REF_NAME
build-latest:
stage: build
only:
- master
script:
- docker pull $CONTAINER_IMAGE:latest || true
- docker build --cache-from $CONTAINER_IMAGE:latest --tag $CONTAINER_IMAGE:latest .
- docker push $CONTAINER_IMAGE:latest