合并到master时根据源分支名称标记docker映像

时间:2020-09-28 15:48:05

标签: git docker gitlab gitlab-ci

我想利用gitlab-ci并执行以下操作:

  1. 将名为foo的本地分支推送到Gitlab存储库中,其中包含Dockerfile.foo(除其他外)
  2. 将此foo分支合并到master
  3. master分支中,每有一个合并请求成功运行,分支中就会有一个.gitlab-ci.yml来运行管道,这将:登录docker hub,构建一个名为foo:latest的docker image并将其推送到docker hub。

到目前为止,我收到的是以下Yaml,但它不起作用。

stages:
- build

docker-build:
image: docker:latest
stage: build
services:
  - docker:dind
before_script:
  - docker login -u "$DOCKER_REGISTRY_USER" -p "$DOCKER_REGISTRY_PASSWORD"
script:
  - docker build -f Dockerfile.$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME -t $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME:latest .
  - docker push <some-docker-hub-repo>/$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME:latest
only:
  - merge_requests

如果在only中包含- master并给出一个特定的名称而不是$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME,则该名称有效。但是,这不是我想要做的,因为我要合并到master每个源分支,以该分支的名称构建并推送一个docker映像它到码头枢纽。最后,由于某种原因,合并请求成功完成后,环境变量$ CI_MERGE_REQUEST_SOURCE_BRANCH_NAME返回nil。你能帮我吗?

0 个答案:

没有答案
相关问题