Giu*_*lin 7 docker docker-compose github-package-registry
我已经在 GitHub Packages 上推送了一个 Docker 镜像,现在我想拉取它并使用它。为了在本地运行图像,我曾经转到相关文件夹并使用命令运行它docker-compose up
。然而现在,通过从 GitHub Packages 拉取,我只是获得了没有任何文件夹的 Docker 映像,而且我不知道如何运行它。
通过检查图像,它具有与原始文件夹相关的所有文件,但是当我尝试运行该docker-compose up ghcr.io/giuliomat/bdt-project
命令时,我收到一条错误消息,指出目录中没有 docker-compose.yml。如果我只使用该命令,docker run ghcr.io/giuliomat/bdt-project
它将运行 docker-compose.yml 文件中指定的两个服务之一。如何正确运行 Docker Compose 镜像?提前致谢!
更新:我尝试更好地解释自己。图像中有一个 Dockerfile(现在我已在问题中上传),用于构建 Web 服务。我在本地开发了该映像,并且使用 运行它没有问题docker-compose up
,但现在我想了解当用户从我的 GitHub 包中提取它时必须执行哪些操作才能运行它,这就是我的问题。拉取的映像应该具有运行所需的所有元素,但我不知道使用什么命令来告诉 Docker 运行 docker-compose.yml 文件中指定的两个服务,因为当用户从 GitHub 中拉取包时,它只获取图像,但没有运行的文件夹docker-compose up
。
Dockerfile:
docker-compose.yml:
拉取的 docker 镜像的内容:
更新:
Docker 映像存储库不存储yml 文件,因此您可以README.md
在映像注册表中为用户提供 yml 文件(将 yml 详细复制粘贴到那里)和/或还提供其余文件所在的版本控制存储库的链接,以便用户可以克隆和使用docker-compose up
。
docker-compose up [options] [--scale SERVICE=NUM...] [SERVICE...]
(if specified, otherwise run all) in
意思是“在当前工作目录中找到[service...] docker-compose.yml`并运行它。
因此,如果您移出该文件夹,docker-compose.yml
它将不会选择撰写文件,因此无法工作。
另外,对于使用的映像,您需要指定image
服务的属性,而不是build
因为build
在本地工作Dockerfile
并尝试构建映像而不是从 GitHub Docker 映像注册表中提取它:
web:
image: "ghcr.io/giuliomat/bdt-project:latest"
Run Code Online (Sandbox Code Playgroud)
这与您获得服务的方式相同redis
。
还要确保您可以首先在本地拉取图像(否则docker login
在编写命令之前有必要):
docker pull ghcr.io/giuliomat/bdt-project
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9043 次 |
最近记录: |