簡単なドッカー作成設定を作成したいと思います。私はJSで実装された静的なフロントエンドをnginxが提供しています - これは1つのコンテナです。私はまた、APIバックエンドWebサーバーを持っています - 別のコンテナ。ドッカーはホストの観点からバックエンドのIPを使って設定フロントエンドを設定します
通常のポート転送で両方のコンテナを個別に実行し、ホストマシン(Mac OS X)からdocker-machine ip
で指定されたIP経由でアクセスできます。問題はフロントエンドが静的コンテンツを正しく提供していることですが、javascriptは間違ったアドレスにAPIリクエストを出しています。フロントエンドアプリケーションは、バックエンドのアドレスを使用してホストマシンの観点から構成する必要があります。これは、ホストマシンが実際にAPI呼び出しを実行しているためです。
ドッカーマシンのIPアドレスをコンテナの環境に渡す方法はありますか?これを可能にする他のネットワーク設定もあります。実際の答えよりも回避策の
私のブラウザの「localhost」は私のMacです。 docker-machineは他のアドレスのLinux VMです。コンテナはそのVM内で実行され、ポートはVMに転送されますが、Macでは転送されません。ここにdocページがあります:https://docs.docker.com/engine/installation/mac/ –
MACとVM間のポートフォワードは、SSHなどのdocker-machineで設定できます。 – MinusFour
IMOあなたが使用しているバックエンドにリバースプロキシとして機能するようにnginxを設定するのが最善でしょう。これにより、APIのURLは同じドメインを基準にして維持されます。 – MinusFour