我正在学习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下载它,但是肯定有更好的方法。
答案 0 :(得分:1)
GitHub Actions主机(运行器)是一台满载的Linux计算机,已经安装了每个人需要的所有东西。
您只需运行docker和docker-compose命令即可轻松启动多个容器-您自己的映像或公共映像。
我对您的建议是:在docker-compose.yml
文件中描述您的服务,并在GitHub Actions步骤之一中,只需执行docker-compose up -d
。
答案 1 :(得分:1)
您可以使用仓库中的Dockerfile
或docker-compose.yml
创建docker镜像。向公众gist咨询,可能会有所帮助。
您可以使用docker-compose
来代替构建多个docker-images。 Docker-compose是处理这种情况的首选方法。