シナリオ:コードには、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アプリケーションコンテナを再設定する必要はありませんか?
私はそれを試しましたが、私はそれを適切に使用したとは確信していません。 'docker-compose up'は私にstdinを与えず、' docker-compose run'が問題の原因です。あなたはこれをした後、どのコマンドを使うべきかアドバイスできますか? – Altreus
docker-composeでstdinを取得しません。あなたがそれを実行する方法は、このようになります。 'docker-compose up -d'。既存のコンテナで実行したい場合は、 'docker-compose exec odoo bash'を使います。コンテナ内のメインプロセスにアタッチする場合は、 'docker attach'を使用してください。 –
'docker attach'は存在しませんでした。いつそれが現れましたか?それと 'tty:true'で、私は必要なものを得ました – Altreus