2017-01-19 6 views
9

私は現在サービスの展開に苦労しています。複数のリポジトリに対処する必要がある場合、適切な方法は何かを質問したいと思います。リポジトリは独立していますが、本番環境で動作させるためには、すべてを立ち上げる必要があります。複数のリポジトリを使用したドッカーの作成

マイセットアップ:

  • Gitのリポジトリバックエンド:
    • バックエンド事業のRails
    • ドッカ - コン:DBバックエンド(3000を公開)、そしてRedisの
  • Gitのリポジトリのフロントエンド
    • Express.jsサーバ
    • ドッカー-COMPOSE(4200公開)

両方が独立して実行することができ、試験が生産 ためCI

  • Gitのリポジトリnginxので実行することができます
    • 他の2つのサービス(同じドッカーネットワーク)に接続する必要があります。
    • 右サービス

は、私はすでにnginxのリポジトリにサブモジュールとして2つのサービスが含まれ、nginxのレポのドッキングウィンドウ-コンを使用しようとしましたが、私はそれで本当に満足していません。

答えて

9

実行する各サービスのCIビルドとプッシュイメージを持ち、運用環境で3つのすべてのコンテナを実行できます。

その後、本番docker-compose.ymlは次のようになります。

lb: 
    image: nginx 
    depends_on: 
    - rails 
    - express 
    ports: 80:80 

    rails: 
    image: yourorg/railsapp 

    express: 
    image: yourorg/expressapp 

docker-composeは、本番環境では推奨されませんのでご注意します。あなたはansibleなどのツールやbashスクリプトを使用してコンテナを編成することができ、またDistributed Application Bundles(これはまだバージョン1.13でコアにリリースされる実験的な機能、である)

を使用されているはずです。ドッカーネットワークを作成し、3つのコンテナをすべて見つけられるようにしてください。

編集:ドッカーのV17とCompose file v3の賛成でDAB秒の廃止以来、単一ホスト環境のために、docker-composeはマルチサービス・アプリケーションを実行するための有効な方法であると思われます。マルチホスト/ HA /クラスタ化シナリオでは、自己管理型ソリューションの場合はDocker Swarm、その他のPaaSアプローチの場合はDocker Cloudのいずれかを調べるとよいでしょう。いずれにしても、複数のホストを派遣して自分の箱を回転させずに群れクラスタで遊ぶことができる公式のオンラインサンドボックスPlay-with-Dockerで試してみることをお勧めします。

+0

あなたの答えに感謝します。私はkubernetesやdocker swarmのようなコンテナオーケストレーションツールをもっと見ていきます。 –

+0

[Docker公式トレーニング](http://training.play-with-docker.com)をお勧めします。これは、サンドボックス化された0設定環境でこのようなことをすばやく理解するためのものです。 また、 'docker-compose' v 3+では[' docker stack deploy'](https://docs.docker.com/engine/reference/commandline/stack_deploy/)でswarmクラスタにデプロイすることが可能になりました#examples)。コンポサービスの新しい 'deploy'オプションに関するドキュメントを必ず読んでください。 – gvilarino

関連する問題