2017-09-15 8 views
0

シナリオ:コードには、docker-composeで作成された(ボリュームとして)コンテナにマウントされたブレークポイントが設定されています。コードはodooモジュールなので、odooコンテナの一部です。docker-composeコンテナを対話モードで実行して他のコンテナに表示させるにはどうすればよいですか?

また、APIを使用するためにodooへのリンクを持つwebappコンテナもあります。

odooコンテナは、ホストがAPIポートを必要としないため、APIポートを公開しません。もちろん、ウェブアプリケーションコンテナはそれを見ることができます。

services: 
    odoo: 
    volumes: 
     - localpath:/mnt/extra-addons-bundles 
    webapp: 
    links: 
     - odoo 

もちろん、ブレークポイントの目的は私がアプリケーションを制御できるようにすることです - 私はTTYが必要です。私はdocker-compose run --rm odooでこれを行うことができます。しかし、これを行うと、新しいコンテナが作成されるため、Webアプリケーションは実際にはそれに当たっていません。さらに、新しいコンテナが呼び出されたことを教えてくれないので、手動でそれを把握しなければなりません。

私はdocker execを使用してodooコンテナに別のodooを実行できますが、新しいポートでそれを実行して、この新しいインスタンスを使用するようにwebapp configを変更する必要があります。

odooコンテナをインタラクティブモードで実行して、Webアプリケーションコンテナに表示させることができ、Webアプリケーションコンテナを再設定する必要はありませんか?

答えて

0

すると、ちょうどそれを

編集-1

を削除しない場合、私は、あなたがそれを必要とする場合にstdin_openをも追加し、これを試してみて、それが

services: 
    odoo: 
    volumes: 
     - localpath:/mnt/extra-addons-bundles 
    tty: true 
    stdin_open: true 
    webapp: 
    links: 
     - odoo 

を動作するかどうかを確認しますまた、実行中のコンテナに接続する必要がある場合は、docker-composeはその機能を持たないため、docker attachを使用する必要があります。

docker attach <containername> 
+0

私はそれを試しましたが、私はそれを適切に使用したとは確信していません。 'docker-compose up'は私にstdinを与えず、' docker-compose run'が問題の原因です。あなたはこれをした後、どのコマンドを使うべきかアドバイスできますか? – Altreus

+0

docker-composeでstdinを取得しません。あなたがそれを実行する方法は、このようになります。 'docker-compose up -d'。既存のコンテナで実行したい場合は、 'docker-compose exec odoo bash'を使います。コンテナ内のメインプロセスにアタッチする場合は、 'docker attach 'を使用してください。 –

+0

'docker attach'は存在しませんでした。いつそれが現れましたか?それと 'tty:true'で、私は必要なものを得ました – Altreus

0

答えは、ドッカー作成ファイルでtty: trueを使用し、docker attachを使用して実際にそのプロセスを端末に接続することです。

関連する問題