Github Actions构建镜像并远程启动容器

76次阅读
没有评论

共计 1251 个字符,预计需要花费 4 分钟才能阅读完成。

判断容器是否存在,并完成删除。主要是容器不存在的时候,删除语句不能导致构建失败。

name: Docker Image CI

on:
  workflow_dispatch:
  push:
    branches: [ "main" ]

jobs:

  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v3
    - name: Login to Docker Hub
      uses: docker/login-action@v3
      with:
        registry: ${{ secrets.DOCKER_REGISTRY }}
        username: ${{ secrets.DOCKER_HUB_USERNAME }}
        password: ${{ secrets.DOCKER_HUB_TOKEN }}

    - name: Build and push
      uses: docker/build-push-action@v4
      with:
        context: .
        push: true
        tags: ${{ secrets.DOCKER_REGISTRY }}/${{ secrets.DOCKER_HUB_SPACE }}/${{ vars.DOCKER_IMAGE_NAME }}:latest

    - name: executing remote ssh commands using ssh key
      uses: appleboy/ssh-action@v1.0.0
      env:
        INPUT_DOCKER_CONTAINER_NAME: ${{ vars.DOCKER_CONTAINER_NAME }}
      with:
        host: ${{ secrets.SSH_HOST }}
        username: ${{ secrets.SSH_USERNAME }}
        key: ${{ secrets.SSH_KEY }}
        port: ${{ secrets.SSH_PORT }}
        allenvs: true
        script: |
          docker pull ${{ secrets.DOCKER_REGISTRY }}/${{ secrets.DOCKER_HUB_SPACE }}/${{ vars.DOCKER_IMAGE_NAME }}

          if [ "$(docker ps -aq -f name=${INPUT_DOCKER_CONTAINER_NAME})" ]; then
            docker rm -f ${INPUT_DOCKER_CONTAINER_NAME}
          fi
          docker run -dit --name ${INPUT_DOCKER_CONTAINER_NAME} \
            --network zxyh \
            -v /home/zxyh/applog/openapi/:/data/log \
            -p 33000:6000 --restart always \
            --env-file /home/zxyh/tcpush/prod.env \
            -e APP_INSTANCE=Open \
            ${{ secrets.DOCKER_REGISTRY }}/${{ secrets.DOCKER_HUB_SPACE }}/${{ vars.DOCKER_IMAGE_NAME }}
正文完
 1
评论(没有评论)