Назад | Перейти на главную страницу

Невозможно запустить docker-compose из оболочки ssh

Я работаю над созданием скрипта в моем .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 (...)