在 GitLab CI 中,可以通过定义 CI/CD 流程来给 Docker 镜像打 tag。以下是一个示例流程:
build_docker_image:
stage: build
image: docker:19.03.12
services:
- docker:19.03.12-dind
variables:
DOCKER_HOST: tcp://docker:2375
DOCKER_TLS_CERTDIR: ""
script:
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- docker build -t $CI_REGISTRY_IMAGE/myapp:${CI_COMMIT_SHA} .
- docker push $CI_REGISTRY_IMAGE/myapp:${CI_COMMIT_SHA}
- docker tag $CI_REGISTRY_IMAGE/myapp:${CI_COMMIT_SHA} $CI_REGISTRY_IMAGE/myapp:latest
- docker push $CI_REGISTRY_IMAGE/myapp:latest
在上述示例中,我们定义了一个名为 build_docker_image 的 job,在该 job 中会构建一个 Docker 镜像并将其推送到 GitLab Registry。其中,我们使用了变量来指定 Docker 镜像的名称和 tag,其中 ${CI_COMMIT_SHA} 表示当前 commit 的 SHA 值。
在构建完成后,我们通过 docker tag 命令再给该镜像打上一个 latest tag,并将其推送到 Registry 中。
这样,我们就成功地在 GitLab CI 中给 Docker 镜像打上了 tag。