反正有没有使用 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_registry
和write_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 镜像?的主要内容,如果未能解决你的问题,请参考以下文章