[英]How to run a Docker Compose image pulled from GitHub Packages
我已经在 GitHub Packages 上推送了一个 Docker 镜像,现在我想拉它并使用它。 为了在本地运行映像,我曾经转到相关文件夹并使用命令docker-compose up
运行它。 但是现在,通过从 GitHub 包中提取,我只获得了没有任何文件夹的 Docker 映像,我不知道如何运行它。
通过检查图像,它包含与原始文件夹相关的所有文件,但是,当我尝试运行docker-compose up ghcr.io/giuliomat/bdt-project
命令时,我收到一条错误消息,指出没有 docker-compose。 yml 在目录中。 如果我只使用命令docker run ghcr.io/giuliomat/bdt-project
它docker run ghcr.io/giuliomat/bdt-project
-compose.yml 文件中指定的两个服务之一。 如何正确运行 Docker Compose 镜像? 提前致谢!
更新:我试着更好地解释自己。 在图像中有一个用于构建 Web 服务的 Dockerfile(现在我已在问题中上传)。 我在本地开发了映像,并且使用docker-compose up
运行它没有问题,但是现在我想看看当用户从我的 GitHub 包中提取它时必须执行哪些操作才能运行它,这是我的问题. 拉取的映像应该包含运行所需的所有元素,但我不知道使用什么命令来告诉 Docker 运行 docker-compose.yml 文件中指定的两个服务,因为当用户从 GitHub 包中提取时,它只获取图像并且没有运行docker-compose up
文件夹。
Dockerfile:
docker-compose.yml:
拉取的 docker 镜像的内容:
更新:
泊坞窗图像库不存储阳明文件,所以要么你提供一个README.md
在图像注册表中的用户(与YML冗长复制粘贴有)和/或还提供链接到版本控制储存库,其余文件驻留,因此用户可以克隆和使用docker-compose up
。
docker-compose up [options] [--scale SERVICE=NUM...] [SERVICE...]
意思是“ (if specified, otherwise run all) in
docker-compose.yml` 中找到 [service...] (if specified, otherwise run all) in
当前工作目录并运行它。
因此,如果您使用docker-compose.yml
文件夹,它将不会选择撰写文件,因此将无法工作。
同样对于使用的图像,您需要指定服务的image
属性而不是build
因为build
在本地使用Dockerfile
并尝试构建图像而不是从 GitHub Docker 镜像注册表中提取它:
web:
image: "ghcr.io/giuliomat/bdt-project:latest"
这与您为redis
服务提供的方式相同。
还要确保您可以首先在本地拉取图像(否则在撰写命令之前需要docker login
):
docker pull ghcr.io/giuliomat/bdt-project
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.