我试图在GitLab-CI中的私有注册表中标记自动构建的Docker镜像,但'release‘作业失败,并显示:Error response from daemon: No such image: dev.skibapro.de:5050/dransfeld/dockerci-test:v0.4
这是我的.gitlab-ci.yml
,构建和测试作业运行没有错误,并且在管道运行后,docerci- test :v0.4出现在我的注册表中。
image: docker:stable
variables:
DOCKER_DRIVER: overlay2
IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME
services:
- docker:dind
stages:
- build
- test
- release
before_script:
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
build:
only:
- tags
stage: build
script:
- docker build -t $IMAGE_TAG -f docker/Dockerfile .
- docker push $IMAGE_TAG
test:
only:
- tags
stage: test
script:
- docker run $IMAGE_TAG /usr/local/bin/test.sh
release:
only:
- tags
stage: release
script:
- docker tag $IMAGE_TAG "$CI_REGISTRY_IMAGE:latest"
这是我在作业日志中得到的错误:
$ docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Login Succeeded
$ docker tag $IMAGE_TAG "$CI_REGISTRY_IMAGE:latest"
Error response from daemon: No such image: dev.skibapro.de:5050/dransfeld/dockerci-test:v0.4
ERROR: Job failed: exit code 1
我不知道,当“发布”阶段运行时,图像还没有出现,或者如果我要求docker做一些它不能做的事情……我希望最新的标签只有在测试阶段成功完成后才能应用。
发布于 2018-07-03 07:25:25
虽然GitLab似乎支持在远程注册表(Add remote tag to a docker image)中标记图像,但Docker需要首先从远程注册表中提取图像。摘自GitLab的博客(https://about.gitlab.com/2016/05/23/gitlab-container-registry/)
release-image:
stage: release
script:
- docker pull $CONTAINER_TEST_IMAGE
- docker tag $CONTAINER_TEST_IMAGE $CONTAINER_RELEASE_IMAGE
- docker push $CONTAINER_RELEASE_IMAGE
https://stackoverflow.com/questions/51138605
复制相似问题