Вот мой код
- step:
name: SSH to Digital Ocean and update docker image
script:
- head ~/.ssh/config
- ssh -i ~/.ssh/config [email protected]
- docker ps
- docker rm -f gvcontainer
- docker image rm -f myrepo/myimage:tag
- docker pull myrepo/myimage:tag
- docker run --name gvcontainer -p 12345:80 -d=true --restart=always myrepo/myimage:tag
services:
- docker
Здесь я вижу, что конвейер ssh успешно попадает в мою каплю DO, но по какой-то причине (я думаю, было слишком быстро набрать «docker ps». Он должен подождать несколько секунд, но я просто не знаю, как чтобы отложить операцию) он не смог найти контейнер.
Итак, я вручную ввел ssh в свою каплю и проверил, есть ли там gvcontainer.
Пожалуйста, объясните мне возможные причины. Спасибо
Команды, перечисленные после сеанса SSH, не выполняются в удаленной системе — они выполняются в конвейерах. Поскольку контейнер Pipelines не имеет
gvcontainer
для удаления, он возвращает эту ошибку.У вас есть несколько вариантов, один из которых я изложил, отвечая на другой ваш вопрос (передайте команды в качестве аргументов в SSH, как в
ssh -i /path/to/key [email;protected] "command1 && command2"
). Другой вариант — поместить в каплю скрипт, который делает все, что вы хотите, и заставить конвейеры выполнять его через SSH (ssh -i /path/to/key [email;protected] "./do-all-the-things.sh"
).спасибо, Джим, я думаю, ты прав. Хотя я израсходовал все свое бесплатное время на сборку на Bitbucket, мне нужно будет подтвердить это в следующем месяце. — person Franva; 17.07.2019
привет, Джим, мое бесплатное время конвейера BitBucket было израсходовано. Я написал файл .bat, в котором есть: ssh -i / path / to / key user @ host command1 && command2. Но все же выдает ошибку: нет такого контейнера: gvcontainer. пожалуйста помоги — person Franva; 18.07.2019