Azure应用服务未将Gitlab容器注册表配置用作私有存储库

时间:2019-05-13 09:28:06

标签: azure docker gitlab

我有一个应用程序容器被推送到gitlab容器注册表。我正在尝试将其作为容器部署到Azure Web应用程序服务中。根据azure的文档,我尽了最大的努力进行了配置。但是我不明白我所缺少的是什么,因为azure日志显示azure仍在尝试连接到docker hub注册表。

Here consider that image with tag latest is provided i.e image:latest

在日志中,我得到以下内容

2019-05-13 09:21:49.741 ERROR - DockerApiException: Docker API responded with status code=InternalServerError, response={"message":"Get https://registry-1.docker.io/v2/library/<image-name>/manifests/latest: unauthorized: incorrect username or password"}

2019-05-13 09:21:49.743 ERROR - Pulling docker image <image-name> failed:
2019-05-13 09:21:49.743 INFO  - Pulling image from Docker hub: library/<image-name>
2019-05-13 09:21:50.795 ERROR - DockerApiException: Docker API responded with status code=NotFound, response={"message":"pull access denied for <image-name>, repository does not exist or may require 'docker login'"}

2019-05-13 09:21:50.797 ERROR - Image pull failed: Verify docker image configuration and credentials (if using private repository)

有人可以告诉我在这里我可能做错了什么吗?我相信问题是注册表url配置。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

对于其他面临相同问题的人,我的问题是我只给出了映像名称,不得不输入映像注册表的全名registry.gitlab.com/<group name>/<image name>

答案 1 :(得分:0)

因为我花了一些时间来解决这个问题,所以这对我帮助最大。 (感谢 @Hassaan 的回答为我指明了正确的方向)

GitLab

您需要了解位于 GitLab 中的容器注册表。 检查 image naming conventions

如果您使用 GitLab Cloud 注册表 URL 是:https://registry.gitlab.com

登录 GitLab 后,检查您的项目并导航到“Packages & Registries”并点击“Container Registry”。

如果您已经发布了图片,它将显示在列表中。你在那里看到的就是我所说的“完整图像名称”。

很可能是 //。 我们稍后需要完整的图像名称。单击该列表中的该图像以获取图像标签列表。您必须选择一个标签供以后使用。

如果您尚未将映像发布到该注册表,请检查 docs 以开始使用。

Azure 网络应用

导航到您的应用服务并在左侧菜单中找到“容器设置(经典)”。

然后只需填写所需的数据。

如果您不确定要在登录名和密码中输入什么,请查看如何authenticate with the container registry