Я пытался понять, как использовать конвейеры BitBucket для автоматического развертывания моего приложения (Laravel) на экземпляре Vultr Server.
У меня есть следующие шаги, которые я делаю вручную, которые я пытаюсь воспроизвести автономно:
- Я
commit
мои изменения и push
в репозиторий BitBucket
- Я захожу на свой сервер, используя Терминал:
ssh root@ipaddress
- I
cd
в правильный каталог: cd /var/www/html/app/
- Я тогда
pull
из моего репозитория BitBucket: git pull origin master
- Затем я запускаю несколько команд:
composer install
, php artisan migrate
и т. Д.
- Затем я выхожу из системы:
exit
Насколько я понимаю, вы можете использовать конвейеры для автоматизации этого процесса, это правда?
Пока что я настроил пару ключей SSH для конвейеров и моего сервера, поэтому файл authorized_keys
моего сервера содержит открытый ключ от BitBucket Pipelines.
Файл моих конвейеров bitbucket-pipelines.yml
выглядит следующим образом:
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 'Deploy finished.'
Когда конвейер выполняется, я получаю ошибку: bash: cd: /var/www/html/app/: No such file or directory
.
Я прочитал, что каждый шаг сценария выполняется в своем собственном контейнере.
Каждый шаг в вашем конвейере запускает отдельный контейнер Docker для
запустить команды, настроенные в скрипте
Ошибка, которую я получаю, имеет смысл, если она не выполняет cd /var/www/html/app
в VPS после входа в нее с использованием SSH.
Может ли кто-нибудь направить меня в правильном направлении?
Спасибо