image: docker:latest services: - docker:dind stages: - Build Image - Push to Docker Hub - Cleanup Runner variables: DOCKER_HOST: tcp://docker:2375/ DOCKER_DRIVER: overlay2 before_script: - docker info - echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin build: stage: Build Image script: - docker build --pull -t "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME" . push-master: stage: Push to Docker Hub script: - docker push "$CI_REGISTRY_IMAGE" only: - master push-other: stage: Push to Docker Hub script: - docker push "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME" except: - master cleanup: stage: Cleanup Runner script: - docker logout - docker image prune --all --force