new
Some checks failed
Deploy Docker Image / build-and-deploy (push) Has been cancelled

This commit is contained in:
jeremygan2021
2026-02-27 17:16:44 +08:00
parent d1e78559bc
commit 5826f5ff86
5 changed files with 172 additions and 207 deletions

View File

@@ -8,35 +8,39 @@ on:
jobs:
build-and-deploy:
runs-on: ubuntu
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
uses: https://gitea.com/actions/checkout@v3
- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
run: echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin
- name: Build and push
uses: docker/build-push-action@v4
with:
context: .
push: true
tags: ${{ secrets.DOCKER_USERNAME }}/wx-pyq:latest
run: |
docker build -t ${{ secrets.DOCKER_USERNAME }}/wx-pyq:latest .
docker push ${{ secrets.DOCKER_USERNAME }}/wx-pyq:latest
- name: Deploy to Server
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.SERVER_HOST }}
username: ${{ secrets.SERVER_USERNAME }}
key: ${{ secrets.SERVER_KEY }}
script: |
docker pull ${{ secrets.DOCKER_USERNAME }}/wx-pyq:latest
docker stop wx-pyq || true
docker rm wx-pyq || true
docker run -d --name wx-pyq -p 80:80 ${{ secrets.DOCKER_USERNAME }}/wx-pyq:latest
run: |
# Install SSH client
if command -v apk > /dev/null; then
sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
apk add --no-cache openssh-client
elif command -v apt-get > /dev/null; then
sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list
apt-get update && apt-get install -y openssh-client
fi
# Setup SSH key
mkdir -p ~/.ssh
echo "${{ secrets.SERVER_KEY }}" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
# Deploy
ssh -o StrictHostKeyChecking=no -i ~/.ssh/id_rsa ${{ secrets.SERVER_USERNAME }}@${{ secrets.SERVER_HOST }} "
docker pull ${{ secrets.DOCKER_USERNAME }}/wx-pyq:latest && \
(docker stop wx-pyq || true) && \
(docker rm wx-pyq || true) && \
docker run -d --name wx-pyq -p 3321:80 ${{ secrets.DOCKER_USERNAME }}/wx-pyq:latest
"