通过SSH Github Actions运行Docker镜像



所以我目前正试图使GitHub Actions/CI SSH进入我的VPS并运行docker映像。虽然主要的问题是作业在运行最后一个命令后没有完成。

这是我的html文件:

name: SSH & Deploy Image
on:
workflow_run:
workflows: ["Timmy Docker Build"]
branches: [ main ]
types:
- completed
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Run Docker CMD
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
password: ${{ secrets.PASSWORD }}
port: ${{ secrets.PORT }}
script: |
docker stop ss-timmy && docker rm ss-timmy
docker pull spaceturtle0/ss-timmy:latest
docker run --env-file=Timmy-SchoolSimplified/.env  spaceturtle0/ss-timmy &

无论在最后的脚本命令中是否添加了&符号,该进程都会挂起,直到该进程被终止。有什么办法可以解决这个问题吗?

您应该使用-d标志,表示detached而不是&标志为最后一个docker命令。所以完整的命令是:

docker run -d --env-file=Timmy-SchoolSimplified/.env  spaceturtle0/ss-timmy