Dockerfileにこれがあります:
...
CMD bash on-start.sh
これを使用して実行でき、必要に応じてインタラクティブシェルを取得できます。
$ docker run -it imagename
$ _
ただし、これを行うと機能しません。
$ docker-compose up
...
exited with code 0
これを行うと、それも機能しますが、依存サービスは開始されません。
$ docker-compose run myservice
$ _
私のバージョン:
$ docker --version
Docker version 1.10.0, build 590d5108
$ docker-compose --version
docker-compose version 1.6.0, build d99cad6
おそらく、作成ファイルでstdin_open:trueを使用することをお勧めします。
それは予想される動作です。 up
はインタラクティブではありません。 複数のコンテナーを開始できるため、複数のコンテナーに対してstdinを開いている単一の端末を使用することはできません。
run
はあなたが望むことをするはずです。 depends_on
を使用すると、Compose 1.6.2(compose 1.6.1でバグが修正されました)の時点で依存関係が開始されるため、アップグレードも必要になります。
@dnephin
ダニエル、私はこのトピックについてのあなたのメモに感謝しなければなりません。 ノードサーバーでコンテナをインタラクティブモードで機能させるのに2日間苦労しましたが、バックエンドのターミナルからデータを入力する必要もあります。 あなたのメモの文言は私に私の問題を別の方向から見るようにさせました。 Docker構成の詳細(runメソッドを含む)をゆっくりと読むことは、私にとって本当に役に立ちました。 どうもありがとう。
docker-compose環境で実行されているPythonデバッガーpdbにインタラクティブにアクセスしたかったのです。 TIL docker attach myservice
最も参考になるコメント
おそらく、作成ファイルでstdin_open:trueを使用することをお勧めします。