GitHub Action执行成功但目标主机Docker容器未运行的排查求助
排查与修复建议:GitHub Action 容器启动后目标主机看不到的问题
核心问题
你的Start containers和Dump docker logs步骤是在GitHub提供的ubuntu-latest runner虚拟机中执行的,而非你的Digital Ocean目标主机。所以容器确实启动了,但运行在GitHub的临时runner上,你SSH登录目标主机自然看不到这些容器。
修复方案
将docker-compose相关命令整合到ssh-action的脚本中,让命令直接在目标主机上执行。修改后的配置如下:
name: CI on: push: branches: [master] jobs: build_and_push: runs-on: ubuntu-latest steps: - name: Checkout files uses: actions/checkout@v2 deploy: needs: build_and_push runs-on: ubuntu-latest steps: - name: Checkout files uses: actions/checkout@v2 - name: Deploy to Digital Ocean droplet via SSH uses: appleboy/ssh-action@v0.1.3 with: host: ${{ secrets.HOST }} username: ${{ secrets.USERNAME }} key: ${{ secrets.SSH_PRIVATE_KEY }} port: 22 script: | # 进入目标主机上的项目目录(替换为实际路径) cd /path/to/your/project # 拉取最新代码 git pull origin master # 启动/重建容器 docker-compose up -d --build # 验证容器状态(可选) docker ps # 查看容器日志(可选) docker-compose logs --tail=20
额外排查点
- 确认目标主机已安装
docker和docker-compose,且服务正常运行 - 确保目标主机上的项目目录存在,
docker-compose.yml文件配置正确 - 检查目标主机的操作用户是否拥有
docker权限(无需sudo),如果没有,在命令前添加sudo - 若容器启动后立即退出,通过
docker-compose logs查看具体错误日志定位问题
内容的提问来源于stack exchange,提问作者Tarak
相关产品推荐
相关产品推荐

