Dockerコンテナを起動し、ホストシステムでWebブラウザを開きます。

Dockerコンテナを起動し、ホストシステムでWebブラウザを開きます。

私は最近、珍しい(私に)ケースに触れました。たぶんあなたはそれを修正する方法を知っているかもしれません。

Dockerコマンドを実行してUbuntuコンテナを起動するシェルスクリプトがあります。このコンテナは最終的にゲストBashを実行し、Webサーバーを含むいくつかのシステムサービスを起動します。ゲストBashが初期化された後、ホストコンピュータでWebブラウザを開きたいです。現在は次のとおりです。

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

ただし、スクリプトはdockerシャットダウンが開始されるのを待つため、明らかに正しく機能しませんpython。ゲストBash(およびWebサーバー)が起動する前にWebサイトがロードされるため、交換は機能しません。同時にを使用してDockerを実行する必要があるため、うまく-it動作docker ... & python ...しません。

仕事を動かす方法はありますか?

ベストアンサー1

バックグラウンドで初期遅延後にWebブラウザを実行できます。

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

私はこれのためにこれを行いますグリップ用ドッカーラッパーホストのコンテナが提供する追加情報を見ると、うまくいきました。コンテナの起動に必要な時間によって異なります。

おすすめ記事