来自同一存储库中Dockerfile的Github动作服务容器

时间:2020-05-06 19:19:17

标签: github-actions building-github-actions

我正在学习Github Actions并设计一个工作流程,该工作需要Service Container

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

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

由于该作业依赖于服务容器,因此该映像在作业开始时必须存在,因此该映像无法由同一作业中的较早步骤创建。该图像可以在单独的作业中构建,但是由于作业在单独的运行程序中执行,因此我认为作业2将无权访问在作业1中创建的图像。如果是,那么我可以使用上载跟随this approach / download-artifact,以便将工作1的图片提供给工作2?

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

2 个答案:

答案 0 :(得分:1)

GitHub Actions主机(运行器)是一台满载的Linux计算机,已经安装了每个人需要的所有东西。

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

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

答案 1 :(得分:1)

您可以使用仓库中的Dockerfiledocker-compose.yml创建docker镜像。向公众gist咨询,可能会有所帮助。

您可以使用docker-compose来代替构建多个docker-images。 Docker-compose是处理这种情况的首选方法。