如何 运行 Docker 组合从 GitHub 包中提取的图像

How to run a Docker Compose image pulled from GitHub Packages

我已经在 GitHub 包上推送了一个 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-compose.yml 文件中指定的两个服务之一。我怎样才能 运行 和 Docker 正确合成图像?提前致谢!

更新: 我试着更好地解释自己。在图像中有一个 Docker 文件(现在我已经在问题中上传)用于构建网络服务。我在本地开发了图像,并且 运行 使用 docker-compose up 没有问题,但现在我想看看它必须做什么才能在用户拉动它时 运行 它来自我的 GitHub 包,这是我的问题。拉出的图像应该具有 运行 所需的所有元素,但我不知道要使用什么命令来告诉 Docker 到 运行 docker 中指定的两个服务-compose.yml 文件,因为当用户从 GitHub 包中提取时,它只会获取图像,而不会获取 运行 docker-compose up.

所在的文件夹

Docker文件:

docker-compose.yml:

拉取的docker图片内容:

更新:

Docker 图像存储库 存储 yml 文件,因此您要么在图像注册表中为用户提供 README.md(使用 yml 详细复制- 粘贴到那里)and/or 您还提供了 link 到其余文件所在的版本控制存储库,因此用户可以克隆和使用 docker-compose up.


docker-compose up [options] [--scale SERVICE=NUM...] [SERVICE...] 表示“在当前工作目录中找到 [service...](if specified, otherwise run all) indocker-compose.yml` 并 运行 它。

因此,如果您使用 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