【发布时间】:2021-12-26 15:10:46
【问题描述】:
我正在尝试使用 GitHub Actions 配置 CI,并且我想在工作流场景中重新使用基于“docker-compose”的逻辑/脚本。 在第一步中,我使用“docker-compose”(或 docker)启动了一些后台服务,在接下来的步骤中,我想使用 host:port 来访问这些后台服务,但它失败了。 例如:
- name: Start background service
run: docker-compose up -d mysql
- name: Wait and check mysql container is running
run: |
sleep 120
docker ps
- name: Check connection
run: mysql -uroot -ppassword -hlocalhost -p3306
# or
- name: Check connection
run: mysql -uroot -ppassword -hmysql -p3306
# here I get 'could not resolve host' error
在这两种情况下我都会遇到连接失败,尽管连接参数是正确的并且根据“docker ps”我有“mysql”容器正在运行并且端口被正确暴露。
有什么方法可以让我从一个步骤到达 docker 容器? 最好不需要在另一个容器中运行 step 的逻辑。
我知道 GitHub Actions 为此类事情提供“服务”,但我在 docker/docker-compose 中有相当多的逻辑,我真的很想用它来避免重复。
【问题讨论】:
标签: docker github docker-compose github-actions