#amazon-web-services #docker #docker-compose #sh
#amazon-веб-сервисы #docker #docker-compose #sh
Вопрос:
Я пытаюсь автоматизировать несколько вещей на AWS с помощью одного скрипта.
- войдите в систему и завершите работу docker-создайте, а затем удалите все изображения
- копирование локальных файлов на сервер
- войдите в систему и запустите docker-compose
Мой сценарий
#log in and shut down docker-compose then remove all images
ssh -i "~/Documents/AWS-Keys/mykey.pem" ubuntu@XX.XXX.XX.XXX
docker-compose down
docker image prune -f
exit
#copy local files to server
scp -r -i "~/Documents/AWS-Keys/mykey.pem" ./ubuntu ubuntu@XX.XXX.XX.XXX:/home
#log in and start docker-compose
ssh -i "~/Documents/AWS-Keys/mykey.pem" ubuntu@XX.XXX.XX.XXX
docker-compose up -d
exit
Я также пробовал logout
вместо exit
, тот же результат.
Выполняется
$ ./upload.sh
Вывод:
Welcome to Ubuntu 20.04.2 LTS (GNU/Linux 5.4.0-1038-aws x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
System information as of Tue Mar 2 21:52:40 UTC 2021
System load: 0.07
Usage of /: 66.0% of 7.69GB
Memory usage: 36%
Swap usage: 0%
Processes: 115
Users logged in: 1
IPv4 address for xxxxxxxxxxxxxxx: XXX.XX.X.X
IPv4 address for docker0: XXX.XX.X.X
IPv4 address for eth0: XXX.XX.X.XXX
* Introducing self-healing high availability clusters in MicroK8s.
Simple, hardened, Kubernetes for production, from RaspberryPi to DC.
https://microk8s.io/high-availability
3 updates can be installed immediately.
0 of these updates are security updates.
To see these additional updates run: apt list --upgradable
Last login: Tue Mar 2 21:51:47 2021 from XXX.XX.X.XXX
ubuntu@ip-XXX.XX.X.XXX:~$
Получив некоторую обратную связь, я тоже попробовал
ssh -i "~/Documents/AWS-Keys/mykey.pem" ubuntu@XX.XXX.XX.XXX
docker-compose down;
docker image prune -f;
exit
Тот же результат.
Комментарии:
1. Вы попробовали неправильную команду. Скопируйте и вставьте ответ, за который проголосовали.
Ответ №1:
Насколько я понимаю, вы хотите запустить команду на сервере, в этом случае просто напишите ее после ssh:
ssh -i "~/Documents/AWS-Keys/mykey.pem" ubuntu@XX.XXX.XX.XXX "docker-compose down ;docker image prune -f"
более длинный сценарий, который вы можете отправить через HEREDOC
ssh -i "~/Documents/AWS-Keys/mykey.pem" ubuntu@XX.XXX.XX.XXX <<COMMANDS
docker-compose down
docker image prune -f
COMMANDS
Комментарии:
1. Предпринята попытка предложить решение. Тот же результат.
2. хорошо, можете ли вы уточнить вопрос, что именно вы сделали и каков был результат?
3. Я добавил точки с запятой «:» после каждой командной строки, как показано выше. Как и в docker-compose down; Результат остается таким же, как указано выше: результат:
4. Итак, у вас также есть команды в кавычках, как показано выше? Потому что без этого он будет выполняться локально. Или попробуйте другой синтаксис с помощью HEREDOC.