Ich verwende GitHub Actions, um meine Anwendung auf einem Remote-VPS bereitzustellen, und alles funktioniert einwandfrei bis zu dem Punkt, an dem ich versuche, auf das Verzeichnis /var/www/todo-app auf dem Server zuzugreifen. Ich habe die folgende Bereitstellungspipeline in meiner ci.yml-Datei, die ausgelöst wird, wenn ein Workflow namens „Docker Image CI“ erfolgreich abgeschlossen wird.
Ich stoße jedoch auf ein Problem mit dem Befehl cd /var/www/todo-app schlägt mit dem folgenden Fehler fehl:
Code: Select all
*** System restart required ***
cd: cannot access '/var/www/todo-app': No such file or directory
Remote-Server:< /p>
Code: Select all
drwxr-xr-x 2 root root 4096 Jan 14 09:38 html
drwxr-xr-x 5 root root 4096 Jan 15 16:27 todo-app
Code: Select all
drwxr-xr-x 2 *** *** 4096 Jan 5 21:36 html
Hier ist der Inhalt meiner ci.yml-Datei:
Code: Select all
name: Deploy to VPS
on:
workflow_run:
workflows: [ "Docker Image CI" ]
types:
- completed
jobs:
deploy:
runs-on: ubuntu-latest
if: ${{ github.event.workflow_run.conclusion == 'success' }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Get SSH key and set permissions
run: |
mkdir -p ~/.ssh
echo "${{ secrets.REMOTE_PRIVATE_KEY }}" > ~/.ssh/id_rsa && chmod 600 ~/.ssh/id_rsa
ssh-keyscan -H ${{ secrets.REMOTE_HOST }} >> ~/.ssh/known_hosts
- name: SSH to the server and Redeploy
run: |
ssh -i ~/.ssh/id_rsa ${{ secrets.REMOTE_USERNAME }}@${{ secrets.REMOTE_HOST }}
cd /var/www/todo-app
git pull origin main
echo "DATABASE_URL=${{ secrets.PG_URL }}" > .env
echo "POSTGRES_USER=${{ secrets.PG_USER }}" >> .env
echo "POSTGRES_PASSWORD=${{ secrets.PG_PASSWORD }}" >> .env
echo "POSTGRES_DB=${{ secrets.PG_DB }}" >> .env
docker compose build
docker compose up -d
exit