【发布时间】:2020-08-21 21:50:40
【问题描述】:
我正在学习 Github Actions 并设计一个工作流,该工作需要Service Container。
documentation 声明配置必须指定“用作服务容器以运行操作的 Docker 映像。该值可以是 Docker 基础映像名称或公共 docker Hub 或注册表”。文档中的所有示例都使用公开可用的 Docker 映像,但是我想从包含在我的 repo 中的 Dockerfile 创建一个服务容器。
是否可以使用本地 Dockerfile 来创建服务容器?
由于作业依赖于服务容器,因此该映像在作业开始时必须存在,因此无法通过同一作业中的较早步骤创建该映像。该图像可以在单独的作业中构建,但由于作业在单独的运行器中执行,我相信作业 2 将无法访问在作业 1 中创建的图像。如果这是真的,那么我可以使用上传/下载来关注 this approach -artifact 所以将 Job 1 的图像提供给 Job 2?
如果一切都失败了,我可以让 Job 1 创建映像并将其上传到 Docker Hub,然后让 Job 2 从 Docker Hub 下载它,但肯定有更好的方法。
【问题讨论】:
-
我们不提供使用普通 Dockerfile 作为服务容器的方法,因为在我们开始作业步骤之前配置服务的限制,并且当时我们没有克隆存储库并且依赖于关于如何设置作业,我们可能永远不会克隆存储库。
标签: github-actions building-github-actions