J'ai essayé de comprendre comment utiliser les Pipelines de BitBucket pour déployer automatiquement mon application (Laravel) sur une instance de serveur Vultr.
Voici les étapes que je fais manuellement et que j'essaie de reproduire de manière autonome:
- Je fais un
commit
de mes modifications et jepush
vers le dépôt BitBucket - Je me connecte à mon serveur en utilisant le Terminal:
ssh root@ipaddress
- Je me déplace vers le répertoire correct:
cd /var/www/html/app/
- Ensuite, je fais un
pull
depuis mon dépôt BitBucket:git pull origin master
- Ensuite, j'exécute quelques commandes:
composer install
,php artisan migrate
etc.. - Ensuite, je me déconnecte:
exit
J'ai l'impression que vous pouvez utiliser les Pipelines pour automatiser cela, est-ce vrai?
Jusqu'à présent, j'ai configuré une paire de clés SSH pour les Pipelines et mon serveur, de sorte que le fichier authorized_keys
de mon serveur contient la clé publique des Pipelines de BitBucket.
Mon fichier pipelines bitbucket-pipelines.yml
est le suivant:
image: atlassian/default-image:latest
pipelines:
default:
- step:
deployment: staging
caches:
- composer
script:
- ssh root@ipaddress
- cd /var/www/html/app/
- git pull origin master
- php artisan down
- composer install --no-dev --prefer-dist
- php artisan cache:clear
- php artisan config:cache
- php artisan route:cache
- php artisan migrate
- php artisan up
- echo 'Déploiement terminé.'
Lorsque le pipeline s'exécute, j'obtiens l'erreur: bash: cd: /var/www/html/app/: No such file or directory
.
J'ai lu que chaque étape de script est exécutée dans son propre conteneur.
Chaque étape de votre pipeline démarrera un conteneur Docker séparé pour exécuter les commandes configurées dans le script
L'erreur que je reçois a du sens si elle n'exécute pas cd /var/www/html/app
à l'intérieur du VPS après s'être connectée via SSH.
Quelqu'un pourrait-il me guider dans la bonne direction?
Merci