如何在GitHub Action的yml工作流文件中运行构建完成的Docker容器
实现方案
你只需要在现有yml文件的Docker Push步骤之后,新增启动容器、状态校验的相关步骤即可,修改后的完整配置如下:
name: vampi_docker on: push: branches: [ master ] pull_request: branches: [ master ] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: docker login env: DOCKER_USER: ${{secrets.DOCKER_USER}} DOCKER_PASSWORD: ${{secrets.DOCKER_PASSWORD}} repository: test/vampi_docker:latest tags: latest, ${{ secrets.DOCKER_TOKEN }} run: | docker login -u $DOCKER_USER -p $DOCKER_PASSWORD - name: Build the Vampi Docker image run: | python -m pip install --upgrade pip pip install -r requirements.txt docker build . --file Dockerfile --tag test/vampi_docker:latest - name: List images run: docker images - name: Docker Push run: docker push test/vampi_docker:latest # 以下为新增的容器运行相关步骤 - name: 启动Docker容器 run: | # 后台启动容器,按需替换端口映射、环境变量等参数 # 示例中将容器内部80端口映射到runner的8080端口,你可以根据自己的镜像实际暴露端口修改 docker run -d --name vampi_container -p 8080:80 test/vampi_docker:latest - name: 校验容器运行状态 run: | # 查看正在运行的容器,确认容器正常启动 docker ps # 打印容器启动日志,方便排查启动异常问题 docker logs vampi_container # 可选步骤:如果你的镜像提供了HTTP服务,可以添加可用性检测 - name: 检测服务可用性 run: | # 等待3秒给服务启动留足时间,可根据实际情况调整 sleep 3 # 测试端口是否可访问,可替换为你自己的检测逻辑 curl http://localhost:8080
补充说明
- 如果你需要给容器传递额外配置,可以在
docker run命令中添加对应的参数,比如用-e 变量名=变量值传递环境变量,用-v 本地路径:容器路径挂载数据卷 - 由于GitHub Action的runner运行结束后会自动销毁,所以这个容器只在当前workflow执行期间存在,如果你需要把容器部署到自己的服务器上,需要额外添加SSH连接服务器、拉取镜像启动的逻辑
内容的提问来源于stack exchange,提问作者Mohd Rashid
相关产品推荐
相关产品推荐

