name: Docker on: push: branches: - main paths-ignore: - "**.md" - "**.yml" env: IMAGE_NAME: certimate jobs: build: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Set up QEMU uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Login to Docker Hub uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_PASSWORD }} - name: Build and push uses: docker/build-push-action@v5 with: context: . file: Dockerfile push: true tags: ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:latest platforms: linux/amd64 - name: 部署到服务器 uses: appleboy/ssh-action@master env: DOCKER_IMAGE: ${{ secrets.DOCKERHUB_USERNAME }}/certimate:latest PROJECT_PATH: ${{ secrets.PROJECT_PATH }} with: host: ${{ secrets.SERVER_IP }} username: root key: ${{ secrets.SERVER_SSH_KEY }} envs: DOCKER_IMAGE,PROJECT_PATH script: | docker pull $DOCKER_IMAGE cd $PROJECT_PATH docker compose down docker compose up -d