4

我正在学习 Github Actions 并设计一个需要Service Container的工作的工作流。

文档指出,配置必须指定“用作运行操作的服务容器的 Docker 映像。该值可以是 Docker 基本映像名称或公共 docker Hub 或注册表” 。文档中的所有示例都使用公开可用的 Docker 映像,但是我想从我的存储库中包含的 Dockerfile 创建一个服务容器。

是否可以使用本地 Dockerfile 来创建服务容器?

由于作业依赖于服务容器,因此该映像在作业开始时必须存在,因此无法通过同一作业中的较早步骤创建该映像。该图像可以在单独的作业中构建,但是由于作业在单独的运行器中执行,我相信作业 2 将无法访问在作业 1 中创建的图像。如果这是真的,那么我可以按照这种方法使用上传/下载-工件所以将工作 1 的图像提供给工作 2?

如果一切都失败了,我可以让 Job 1 创建映像并将其上传到 Docker Hub,然后让 Job 2 从 Docker Hub 下载它,但肯定有更好的方法。

4

2 回答 2

1

Dockerfile您可以使用或docker-compose.yml驻留在 repo中创建一个 docker 映像。参考这个公共要点,它可能会有所帮助。

您可以使用docker-compose. Docker-compose 是处理这种情况的首选方式。

于 2020-05-09T07:29:04.133 回答
1

GitHub Actions 主机(运行器)是一个满载的 Linux 机器,已经安装了每个人需要的一切。

您只需运行 docker 和 docker-compose 命令即可轻松启动多个容器 - 您自己的镜像或公共镜像。

我对您的建议是:在docker-compose.yml文件中描述您的服务,并在您的 GitHub 操作步骤之一中,只需执行docker-compose up -d.

于 2020-05-07T17:37:40.897 回答