Я работаю над созданием скрипта в моем .gitlab-ci.yml
файл, чтобы я мог развернуть недавно созданный образ Docker на моем сервере.
Вот как это выглядит пока:
- ssh deploy@my.private.vps '/bin/sh -c "cd /home/project/some/directory &&
export PATH=/bin:/usr/bin:/usr/local/bin && \
docker-compose stop web && \
docker-compose rm -f web && \
docker-compose up -d web && \
docker-compose exec web php artisan storage:link && \
exit"'
Однако при выполнении команды я продолжаю получать сообщение «docker-compose: command not found». Конечно, docker-compose устанавливается и доступен для "развертывания" пользователя, когда я вхожу в систему с пользователем.
Во время своих исследований я обнаружил, что это произошло потому, что SSH не загружается usr/local/bin
по умолчанию. Я попытался решить эту проблему, включив профиль пользователя в /etc/ssh/sshd_config
файл и экспортировать PATH при запуске скрипта.
У меня заканчиваются идеи, что мне попробовать дальше.
Что я должен делать?
Любая идея приветствуется
Использовать
which docker-compose
или
whereis docker-compose
чтобы узнать, каков его абсолютный путь.
Убедитесь, что этот путь добавлен в ваш PATH env.
Вы также можете просто изменить свой docker-compose
в команды полного пути:
/usr/local/bin/docker-compose stop web (...)