【问题标题】:Push Docker image to Gitlab Registry when repository have two Docker images (client and server)当存储库有两个 Docker 映像(客户端和服务器)时,将 Docker 映像推送到 Gitlab Registry
【发布时间】:2019-05-16 12:59:01
【问题描述】:

我有一个 Gitlab 存储库,其中托管了一个使用 React / NodeJS 制作的 Web 应用程序,因此,我将客户端和服务器放在同一个存储库中。

应用程序正在运行,我想使用 Gitlab Registry 我的 Docker 映像(客户端和服务器)。

问题是我的存储库的名称为:gitlab.com/group/project

它需要一个同名的 Docker 镜像。

相反,我有两个 Docker 映像:

  • registry.gitlab.com/group/project_api
  • registry.gitlab.com/group/project_client

所以,它不会让我推送我的图像。我明白了:

denied:请求的资源访问被拒绝

我该怎么做?我不想创建两个存储库。

【问题讨论】:

  • 啊,您正试图将它们推送到同一个注册表。您可以使用不同的标签,但不建议这样做 - 创建两个 GitLab 项目更为标准。使用标签的语法是gitlab.com/group/project:api(很明显,:client 用于客户端)。
  • 一般来说,标签是用于版本的,所以将它们用于两个独立的工作流有点误用。但是,它会起作用...:-p
  • 我得到:拒绝:请求的资源访问被拒绝
  • 您使用的确切docker push 命令是什么?根据我上面的建议,您需要推送一个存在的注册表,并且该注册表必须是映像的构建名称。

标签: docker gitlab docker-registry


【解决方案1】:

我可以使用:

docker push registry.gitlab.com/group/project/api
docker push registry.gitlab.com/group/project/client

这是它在 UI 中的样子:

relevant gitlab documentation chapter 中所述,您最多可以为图像名称使用三个级别:

  • registry.gitlab.com/group/project:tag
  • registry.gitlab.com/group/project/image1:tag
  • registry.gitlab.com/group/project/module1/image1:tag

【讨论】:

  • 我以前没有见过这种语法。你会在 GitLab UI 中添加一个截图吗?这些是否出现在同一个注册表中?
  • 是的,让我推送两张图片。
  • @halfer 截图上传
  • 啊,太好了,我不知道 GitLab 可以做到这一点。我需要修复一些我自己的项目:-D
猜你喜欢
  • 2016-06-12
  • 1970-01-01
  • 2021-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-17
  • 2018-04-22
  • 1970-01-01
相关资源
最近更新 更多