来自同一repo中Dockerfile的Github操作服务容器



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

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

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

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

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

GitHub Actions主机(runner(是一台完全加载的Linux机器,每个人都需要的东西都已经安装好了。

只需运行docker和docker-compose命令,就可以轻松地启动多个容器——无论是您自己的映像,还是公共映像。

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

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

您可以使用docker-compose,而不是构建多个docker映像。Docker compose是处理此类场景的首选方式。

最新更新