2017-12-25 3 views
2

は私がnginxのとExpressJS(NodeJS)を使用してアプリケーションを開発していますし、私は心の中でドッカーを維持するアプリケーションを書かれていなかったDockerで動的に生成されたNginx設定ファイルを使用するにはどうすればよいですか?

docker-composeで)ドッカーを使用しています。

私のアプリケーションは、Nginx設定を動的に作成します。もともと、これらのNginx設定は私のアプリケーション内の標準ディレクトリに置かれていました。私はこのディレクトリからすべての* .confファイルを読み込むようにNginxを設定していました。

Dockerを使用しているので、Nginx用とアプリケーション用の2つの異なるコンテナを使用しています。

質問:生成された設定ファイルをあるコンテナから別のコンテナに移動するにはどうすればよいですか?

これを達成するためのより良い方法はありますか?

答えて

1

同じボリュームを搭載したコンテナを両方とも実行できます。
Docker Volumes」を参照してください。

最初のコンテナは、そのボリュームに構成ファイルを生成します。
2番目のコンテナ(NGiNX)がそれらを読み込みます。ここでは、同じボリュームが二回マウントされ

version: "3" 

services: 
    db: 
    image: db 
    volumes: 
     - data-volume:/var/lib/db 
    backup: 
    image: backup-service 
    volumes: 
     - data-volume:/var/lib/backup/data 

volumes: 
    data-volume: 

は、一例としてVolume configuration reference参照してください。

1

Dockerの作成を使用していない限り、両方のコンテナが同じサーバー上にあり、永続的なボリュームを共有する必要があるため、展開プロセスが複雑になる可能性があります。プロダクションだけでなく、単一のサービスをプロトタイプ化しようとしているだけの場合には、必要でない可能性のあるサービスを相互に見つけるためのサービスディスカバリも必要になります。

エクスプレスアプリケーションと同じコンテナ内でnginxをsupervisordを使用して実行することもできます。ここで

はそれを行う方法についてのドッキングウィンドウのドキュメントからの参照です: https://docs.docker.com/engine/admin/multi-service_container/

私はnginxのは、あなたの特急アプリケーションに脇役として活躍されており、両方のサービスができれば、これはあなたのユースケースのために意味をなすことができると思います同じマイクロサービスの一部とみなすことができます。

+0

ありがとうございます。私はあなたの解決策を長期的に検討します。短期的な解決策として、私はVonCのソリューションを使用し、それは私の直面する問題を解決しました。私はすぐに質問を受けました:私はDockerにとってはかなり新しいです。プロダクションでドッカーを作っていないのはなぜですか? –

+0

これは、コンテナをどのように実行したいのかに依存しますが、ドッカーは複数のホスト対応コンテナのサポートを追加しましたが、複数のコンテナを複数の/冗長ホストで同時に実行するようには成熟したソリューションがあります。ドッカーの作文はドッカーネットワークの開発ツールとして始まりましたが、それでも私が信じていることは、たくさんの仕事が生産ツールに近づけるためです。 –

関連する問題