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 - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY 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 image prune --all --force