Новое для докеров здесь. У меня есть серия команд, которые, если они загораются на оболочке, работают нормально, но если я поместил их в скрипт, не делайте этого.команда boot2docker работает на оболочке, но не в скрипте
boot2docker destroy
boot2docker init
boot2docker start
boot2docker ssh &
host=$(boot2docker ip 2> /dev/null)
# everything works fine up to here
ssh -i $HOME/.ssh/id_boot2docker -o "StrictHostKeyChecking no" -o "UserKnownHostsFile /dev/null" [email protected]$host docker run --net=host my-image
Если я не пытаюсь запустить команду через ssh, все будет работать. Viz:
ssh -i $HOME/.ssh/id_boot2docker -o "StrictHostKeyChecking no" -o "UserKnownHostsFile /dev/null" [email protected]$host
Это вызовет докер SSH приглашение. Но если я выполнить команду с помощью сценария (и это то, что я на самом деле нужно делать), я получаю сообщение об ошибке:
level="fatal" msg="Post http:///var/run/docker.sock/v1.16/containers/create: dial unix /var/run/docker.sock: no such file or directory. Are you trying to connect to a TLS-enabled daemon without TLS?"
Опять же, если я просто войти в эту последнюю команду или весь литию команд, в оболочку, никаких проблем. Как я могу заставить этот скрипт работать?
Благодаря
обновление Если я положил, что последняя строка в своем сценарии, и запустить два сценария в последовательности из командной строки, все в порядке (такой же, как только вы наберёте все команды в последовательности.) Если я свяжу скрипты или создаю третью, чтобы запустить их последовательно, я получаю ошибку. Что я могу сделать из этого?
Благодаря
На самом деле было бы намного полезнее, если бы вместо того, чтобы опрокидывать, вы ответили на вопрос. –