Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gitlab CICD-将映像推入容器注册表时被拒绝_Gitlab_Gitlab Ci - Fatal编程技术网

Gitlab CICD-将映像推入容器注册表时被拒绝

Gitlab CICD-将映像推入容器注册表时被拒绝,gitlab,gitlab-ci,Gitlab,Gitlab Ci,我正在使用gitlab.com ci/cd将图像推送到gitlab注册表中。我已经有了两个存储库,并将图像作为registry.gitlab.com/group1/project1和registry.gitlab.com/group1/project2推送到注册表中 现在,我又有两个回购协议开始运行。我想为新项目运行CI/CD。我还想将图像推送到不同的注册表中,并按如下方式命名:registry.gitlab.com/group2/project1和registry.gitlab.com/gro

我正在使用gitlab.com ci/cd将图像推送到gitlab注册表中。我已经有了两个存储库,并将图像作为registry.gitlab.com/group1/project1registry.gitlab.com/group1/project2推送到注册表中

现在,我又有两个回购协议开始运行。我想为新项目运行CI/CD。我还想将图像推送到不同的注册表中,并按如下方式命名:registry.gitlab.com/group2/project1registry.gitlab.com/group2/project2 我得到了以下错误:

denied: requested access to the resource is denied

免费的gitlab是否只提供2个注册表?创建更多注册表需要付费吗?

下面的示例
.gitlab ci.yml
是将gitlab项目的容器映像筛选、构建、测试并标记到匹配的映像注册表中。在与映像注册表交互之前,您需要登录,请参阅
docker login
行,GitLab CI Runner为此使用生成的令牌,但仅与当前项目匹配。并且仅当您在设置->常规部分中启用了
容器注册表时

---
图片:docker:最新
服务:
-码头工人:丁
阶段:
-核实
-建造
-试验
-释放
变量:
CI_DOCKER_IMAGE:${CI_注册表_IMAGE}:${CI_提交_SHA}
CI_DOCKER_标记:${CI_注册表_图像}:${CI_提交_标记}
CI_DOCKER_分支:${CI_注册表_图像}:${CI_提交_引用_名称}
CI_DOCKER_LATEST:${CI_REGISTRY_IMAGE}:LATEST
码头工人皮棉:
阶段:验证
图:projectatomic/dockerfile lint
脚本:
-dockerfile_lint-p-f dockerfile
Docker build:
阶段:建造
在脚本之前:
-docker login-u gitlab ci token-p${ci_JOB_token}${ci_REGISTRY}
脚本:
-docker build——pull-t${CI\u docker\u IMAGE}。
-docker push${CI_docker_IMAGE}
Docker测试:
阶段:测试
在脚本之前:
-docker login-u gitlab ci token-p${ci_JOB_token}${ci_REGISTRY}
脚本:
-docker pull${CI_docker_IMAGE}
-docker运行${CI\u docker\u IMAGE}/path/to/test.sh
发布分支:
阶段:发布
在脚本之前:
-docker login-u gitlab ci token-p${ci_JOB_token}${ci_REGISTRY}
脚本:
-docker pull${CI_docker_IMAGE}
-docker标记${CI_docker_IMAGE}${CI_docker_BRANCH}
-docker push${CI_docker_BRANCH}
仅:
-分支机构
除:
-主人
发布标签:
阶段:发布
在脚本之前:
-docker login-u gitlab ci token-p${ci_JOB_token}${ci_REGISTRY}
脚本:
-docker pull${CI_docker_IMAGE}
-docker标记${CI_docker_IMAGE}${CI_docker_标记}
-docker push${CI_docker_TAG}
仅:
-标签
最新版本:
阶段:发布
在脚本之前:
-docker login-u gitlab ci token-p${ci_JOB_token}${ci_REGISTRY}
脚本:
-docker pull${CI_docker_IMAGE}
-docker标记${CI\u docker\u IMAGE}${CI\u docker\u LATEST}
-docker push${CI_docker_LATEST}
仅:
-主人

如果要推送到项目附带的默认注册表以外的图像注册表,则应向CI/CD->Variables部分提供凭据。此外,还应修改
.gitlab ci.yml
,使其在YAML文件中具有正确的注册表用户名accesstoken变量。

下面的示例
.gitlab ci.yml
用于将gitlab项目的容器映像筛选、构建、测试和标记到匹配的映像注册表中。在与映像注册表交互之前,您需要登录,请参阅
docker login
行,GitLab CI Runner为此使用生成的令牌,但仅与当前项目匹配。并且仅当您在设置->常规部分中启用了
容器注册表时

---
图片:docker:最新
服务:
-码头工人:丁
阶段:
-核实
-建造
-试验
-释放
变量:
CI_DOCKER_IMAGE:${CI_注册表_IMAGE}:${CI_提交_SHA}
CI_DOCKER_标记:${CI_注册表_图像}:${CI_提交_标记}
CI_DOCKER_分支:${CI_注册表_图像}:${CI_提交_引用_名称}
CI_DOCKER_LATEST:${CI_REGISTRY_IMAGE}:LATEST
码头工人皮棉:
阶段:验证
图:projectatomic/dockerfile lint
脚本:
-dockerfile_lint-p-f dockerfile
Docker build:
阶段:建造
在脚本之前:
-docker login-u gitlab ci token-p${ci_JOB_token}${ci_REGISTRY}
脚本:
-docker build——pull-t${CI\u docker\u IMAGE}。
-docker push${CI_docker_IMAGE}
Docker测试:
阶段:测试
在脚本之前:
-docker login-u gitlab ci token-p${ci_JOB_token}${ci_REGISTRY}
脚本:
-docker pull${CI_docker_IMAGE}
-docker运行${CI\u docker\u IMAGE}/path/to/test.sh
发布分支:
阶段:发布
在脚本之前:
-docker login-u gitlab ci token-p${ci_JOB_token}${ci_REGISTRY}
脚本:
-docker pull${CI_docker_IMAGE}
-docker标记${CI_docker_IMAGE}${CI_docker_BRANCH}
-docker push${CI_docker_BRANCH}
仅:
-分支机构
除:
-主人
发布标签:
阶段:发布
在脚本之前:
-docker login-u gitlab ci token-p${ci_JOB_token}${ci_REGISTRY}
脚本:
-docker pull${CI_docker_IMAGE}
-docker标记${CI_docker_IMAGE}${CI_docker_标记}
-docker push${CI_docker_TAG}
仅:
-标签
最新版本:
阶段:发布
在脚本之前:
-docker login-u gitlab ci token-p${ci_JOB_token}${ci_REGISTRY}
脚本:
-docker pull${CI_docker_IMAGE}
-docker标记${CI\u docker\u IMAGE}${CI\u docker\u LATEST}
-docker push${CI_docker_LATEST}
仅:
-主人

如果要推送到项目附带的默认注册表以外的图像注册表,则应向CI/CD->Variables部分提供凭据。另外,应修改
.gitlab ci.yml
,以便在YAML文件中具有正确的注册表用户名accesstoken变量。

感谢您的回复。我可以给医生贴标签