| 1 | +stages: |
| 2 | + - build |
| 3 | + |
| 4 | +build-image: |
| 5 | + stage: build |
| 6 | + image: docker:latest |
| 7 | + services: |
| 8 | + - name: docker:dind |
| 9 | + alias: docker |
| 10 | + command: ["sh", "-c", "DOCKER_TLS_CERTDIR='' exec dockerd-entrypoint.sh"] |
| 11 | + variables: |
| 12 | + DOCKER_HOST: tcp://docker:2375 |
| 13 | + script: |
| 14 | + - for i in $(seq 1 60); do docker info >/dev/null 2>&1 && break; sleep 1; done |
| 15 | + - docker info >/dev/null |
| 16 | + - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY" |
| 17 | + - docker pull "$CI_REGISTRY_IMAGE:latest" || true |
| 18 | + - docker build --cache-from "$CI_REGISTRY_IMAGE:latest" -t "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" -t "$CI_REGISTRY_IMAGE:latest" . |
| 19 | + - docker push "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" |
| 20 | + - docker push "$CI_REGISTRY_IMAGE:latest" |