如何运行从 GitHub Packages 提取的 Docker Compose 镜像

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 镜像的内容:

在此输入图像描述

Key*_*Usr 6

更新:

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)