私は現在、サービスの展開に苦労しており、複数のリポジトリーを処理する必要がある場合の適切な方法は何かを尋ねたかったのです。リポジトリは独立していますが、本番環境で実行するには、すべてを起動する必要があります。
私のセットアップ:
どちらも独立して実行でき、テストはCIで実行できます
私はすでに2つのサービスをサブモジュールとしてNginxリポジトリに含め、nginxリポジトリのdocker-composeを使用することを試みましたが、私は本当に満足していません。
実行するサービスごとに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
は、実稼働環境には推奨されません。 Distributed Application Bundles の使用を検討する必要があります(これはまだ実験的な機能であり、バージョン1.13でコアにリリースされます)
または、ansible
などのツールまたはbashスクリプトを使用してコンテナーを調整できます。 Dockerネットワークを作成し、3つすべてのコンテナーを接続して、お互いを見つけられるようにしてください。
編集:Docker v17および [〜#〜] dab [〜#〜] sの廃止により Compose file v が採用されたため、シングルホストの場合は環境、docker-compose
は、マルチサービスアプリケーションを実行するための有効な方法です。マルチホスト/ HA /クラスター化シナリオの場合、自己管理ソリューションの場合は Docker Swarm を、詳細なPaaSアプローチの場合は Docker Cloud のいずれかを検討する必要があります。とにかく、 Play-with-Docker で試してみることをお勧めします。公式のオンラインサンドボックスです。複数のホストをスピンアウトして、スウォームクラスターでスピンアウトする必要はありません。あなた自身の箱。