Update deployment to rsync-based NAS deployment

- Replace Docker Hub CI/CD with direct NAS deployment
- Use rsync for reliable file synchronization
- Add SSH-based remote docker-compose execution
- Configure for Synology NAS volume path structure

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
happybell80 2025-07-07 22:34:25 +09:00
parent 56eaf8c9b5
commit 7d4d77ce1b

View File

@ -1,44 +1,31 @@
name: Deploy Nginx name: Deploy to NAS (rsync)
on: on:
push: push:
branches: [ main ] branches:
workflow_dispatch: - main
jobs: jobs:
deploy: deploy:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout code - name: Checkout repository
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Set up Docker Buildx - name: Setup SSH key
uses: docker/setup-buildx-action@v3 uses: webfactory/ssh-agent@v0.9.0
- name: Login to Docker Hub
uses: docker/login-action@v3
with: with:
username: ${{ secrets.DOCKER_USERNAME }} ssh-private-key: ${{ secrets.NAS_SSH_KEY_ADMIN }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and push Nginx - name: Rsync to NAS
uses: docker/build-push-action@v5
with:
context: ./nginx
push: true
tags: |
${{ secrets.DOCKER_USERNAME }}/robeing-nginx:latest
${{ secrets.DOCKER_USERNAME }}/robeing-nginx:${{ github.sha }}
- name: Update docker-compose.yml
run: | run: |
sed -i "s|image: .*/robeing-nginx:.*|image: ${{ secrets.DOCKER_USERNAME }}/robeing-nginx:${{ github.sha }}|g" docker-compose.yml rsync -avz -e "ssh -o StrictHostKeyChecking=no -p ${{ secrets.NAS_PORT }}" ./ \
${{ secrets.NAS_USER }}@${{ secrets.NAS_HOST }}:/volume1/homes/admin/nginx-infra/
- name: Commit and push changes - name: Remote docker-compose up
run: | run: |
git config --local user.email "action@github.com" ssh -o StrictHostKeyChecking=no -p ${{ secrets.NAS_PORT }} ${{ secrets.NAS_USER }}@${{ secrets.NAS_HOST }} << 'EOF'
git config --local user.name "GitHub Action" cd /volume1/homes/admin/nginx-infra
git add docker-compose.yml docker-compose up -d --build
git commit -m "Update nginx image to ${{ github.sha }}" || exit 0 EOF
git push