Intereting Posts
Копирование на внешний раздел NTFS: замедляется, когда я копирую сразу несколько файлов Подпроцесс pnmtops зависает при вызове из скрипта scanadf Как быстро построить и протестировать ядро, если я хочу изменить системный вызов Печатать содержимое файла и удалять напечатанное содержимое * из файла ld-uClibc.so отсутствует Поведение программы при убийстве -HUP получено? Как удалить GNOME для запуска только Compiz Две команды sed в одной команде Почему новые cronjob игнорируются, если в SLES не перезагружается? Как отредактировать kali linux custom iso? Как аутентифицировать пользователя с помощью PAM, который не является пользователем, который запустил приложение df сообщает 100% полную файловую систему, du показывает только 25%, даже если нет несвязанного файла Как настроить тысячи VLAN на сервере ISC DHCP-4.1.1-P1? NFS – один файл, висящий ls Какие данные следует исключать из файлов журналов, сообщений об ошибках и т. Д., Если они публикуются в Интернете?

Запустите контейнер Docker и откройте веб-браузер на хосте

Недавно я столкнулся с одним нетривиальным (для меня) случаем. Может быть, вы знаете какой-нибудь способ ее решения.

У меня есть сценарий оболочки, который запускает команду Docker для запуска контейнера Ubuntu, который заканчивается запуском гостевого Bash, который запускает некоторые системные службы, включая веб-сервер. После инициализации гостевого Bash я хочу открыть веб-браузер на моей главной машине. В настоящее время это выглядит так:

docker run -it -p $PORT:80 -v $ROOT:/usr/share/nginx $PROJECT python -m webbrowser http://localhost:$PORT 

Но это явно не работает, поскольку скрипт ждет, пока docker выйдет, чтобы запустить python . Их замена также не будет работать, поскольку веб-сайт будет загружен до запуска гостевого Bash (и веб-сервера). В то же время мне нужно запустить Docker с помощью -it , поэтому docker ... & python ... тоже не будет работать.

Есть ли способ заставить все работать?

Вы можете запустить веб-браузер после начальной задержки в фоновом режиме:

 (sleep 2 && python -m webbrowser http://localhost:$PORT) & docker run -it -p $PORT:80 -v $ROOT:/usr/share/nginx $PROJECT 

Я делаю это для обертки докеров для захвата, чтобы просмотреть README, обслуживаемый контейнером в хосте, и он отлично работает для меня. Это зависит от того, как долго ваш контейнер должен запускаться.