Docker HubやGoogle container Registryと同様に、GitLabにもGitLab Container Registryが備わっている。
$ docker login registry.gitlab.com
$ docker build -t registry.gitlab.com/hoge/myproject .
$ docker push registry.gitlab.com/hoge/myproject
コンテナイメージの名前を変数化
job01: stages: - build - test - deploy variables: CONTAINER_NAME: ${CI_PROJECT_NAME}_${APP_NAME} CONTAINER_IMAGE: ${CI_REGISTRY}/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}/${APP_NAME} packaged_web_app: stage: packaged before_script: - docker login -u gitlab-ci-token -p ${CI_BUILD_TOKEN} ${CI_REGISTRY} script: - cd ./${APP_NAME} - docker build . -t ${CONTAINER_IMAGE} only: - branches except: - master tags: - shell - gitlab-runner01 deploy_web_demo: stage: deploy variables: SERVICE_DOMAIN: gitlab-service.example.com before_script: - docker rm -f ${CONTAINER_NAME} || true script: - docker run --name ${CONTAINER_NAME} -p 80:8080 -d ${CONTAINER_IMAGE} - sleep 3 - curl http://${SERVICE_DOMAIN}/${APP_NAME} only: - master when: manual environment: name: production url: http://${SERVICE_DOMAIN}/${APP_NAME}/ tags: - shell - gitlab-runner01
なるほど、大まかにイメージはできてきた