Как установить и использовать docker в одном скрипте оболочки? - PullRequest
0 голосов
/ 10 марта 2020

Мне нужно установить docker и войти в мой репозиторий одним скриптом. Я использую Ubuntu 16.04, но также могу использовать 18.04.

docker_setup. sh:

sudo apt-get install -y docker.io
sudo service docker start
sudo usermod -a -G docker ubuntu
exec sudo su -l ubuntu
docker login -u $DOCKER_USER -p $DOCKER_PW

Это не работает в сценарии оболочки, потому что команда sudo su открывает подоболочка. Я не могу сделать newgrp docker по той же причине. Кроме того, я не могу сделать что-то вроде

newgrp docker << DOCKERSUBHSELL
docker login -u $DOCKER_USER -p $DOCKER_PW
DOCKERSUBSHELL

, потому что я использую ray library , и более поздняя часть библиотеки (которая работает под капотом) также ожидает, что сможет используйте docker команды. Есть ли решение для этого?

Ответы [ 2 ]

0 голосов
/ 10 марта 2020

Это может быть то, что требуется:

sudo su -l ubuntu -c bash << DOCKERSUBSHELL
    docker login -u "$DOCKER_USER" -p "$DOCKER_PW"
DOCKERSUBSHELL
0 голосов
/ 10 марта 2020

Это очень просто. Вы можете сделать скрипт оболочки точно таким же образом, но вы должны использовать cat и EOF. позвольте мне объяснить.

pi@raspberry$ sudo ./script.sh

Этот скрипт будет содержать следующий вывод

cat << EOF | sudo apt-get install -y docker.io
   sudo service docker start
   sudo usermod -a -G docker ubuntu
   exec sudo su -l ubuntu
   exit
   docker login -u $DOCKER_USER -p $DOCKER_PW
   EOF

, если эта команда "docker login -u $ DOCKER_USER -p $ DOCKER_PW" настроена на выполнение в пользователь Ubuntu затем удалите «выход» из моего bash сценария, и все готово.

Дайте мне знать, если это работает или результаты, чтобы я мог изменить его и помочь вам. Спасибо:)

...