反正有没有使用 github / gitlab 下载 docker 镜像?

Posted

技术标签:

【中文标题】反正有没有使用 github / gitlab 下载 docker 镜像?【英文标题】:Is there anyway to use github / gitlab for downloading the docker image? 【发布时间】:2021-09-07 17:14:59 【问题描述】:

由于 Docker Hub 只允许 1 个私有 repo,请问有没有什么方法可以使用 Github 或 Gitlab 等来下载镜像?例如:

FROM git@github.com/username/repo
...
...
...

【问题讨论】:

GitHub 确实提供了一个容器注册表:github.blog/2020-09-01-introducing-github-container-registry 你提到 Gitlab 是一个托管解决方案,对吧?因此,如果您可以访问一台机器来运行 Gitlab,您也可以轻松地在其上运行注册表。 about.gitlab.com/blog/2020/10/30/… 我知道您在 github 和 gitlab 中询问过解决方案,但我想推荐 AWS ECR,您只需为带宽付费。 【参考方案1】:

使用gitlab.com 上的帐户非常容易。 GitLab 提供了一个链接到项目的Docker registry,你可以拥有无​​限的私人项目:

创建项目my-docker-project 转到 Package and Registries > Container registries,您应该会看到一些用于访问您的注册表的命令 使用如下命令将您的计算机连接到此注册表:
# Will prompt for login/pass
docker login registry.gitlab.com
您需要一个access token or deploy token 和read_registrywrite_registry 范围。您可以通过您的个人资料Preferences > Access token 生成一个。 Login 是提供的秘密令牌的令牌名称和密码。 您现在可以使用以下命令推送 Docker 映像:
# Push an image 
docker push registry.gitlab.com/YourUsernameOrGroup/my-docker-project

# Push an image on a sub-path
docker push registry.gitlab.com/YourUsernameOrGroup/my-docker-project/myimage

然后您可以通过引用其 URL 来在 Dockerfile 中使用该图像:

FROM registry.gitlab.com/YourUsernameOrGroup/my-docker-project

# ...

当然,您构建的机器必须使用上面的docker login 命令在相关的 GitLab 注册表上进行身份验证(或者项目必须是公共的)

【讨论】:

很好的答案,一个问题我如何包含另一张图片中的图片......就像我们推送后我该如何使用它? 谢谢 :) 当然,我编辑了一个例子。【参考方案2】:

两者都有出色的包注册服务

对于 GitHub GPR 对于 GitLab GCR

两者都具有出色的功能,例如直接从 Dockerfile 中使用,如您所愿。

我有一个带有 node.js 的public example, you can check it in Github,它使用 GPR 来存储构建图像/包。

【讨论】:

以上是关于反正有没有使用 github / gitlab 下载 docker 镜像?的主要内容,如果未能解决你的问题,请参考以下文章

gitlab服务部署及使用

gitlab-11.1.4继续升级到15.9.3

git配置github与gitlab同时使用

git配置github与gitlab同时使用

gitlab 怎么通过第三方认证登录

如何在不分叉的情况下在 gitlab/github 上复制 git 存储库?