私はdocker-composeを使用してオーケストレーションされた 'システム'のサービスで作業しています。サービスはコンパイルされた言語で書かれており、私が変更を加えると、そのサービスを再構築する必要があります。私は、変更を迅速に繰り返す最善の方法を見つけようとしています。Docker-composeセットアップでコンパイルされたコンポーネントのドッカー開発ワークフロー
私は2つの 'ワークフロー'を試しました。どちらも最新のソースを入手するためにvolume:
を経由してソースディレクトリにリンクされています。
docker-compose up -d
- 停止開発中のサービスのコンテナ
- を実行し、そのコンテナの実行コンパイルして実行内の画像
docker-compose run --name SERVICE --rm SERVICE /bin/bash
- を使用して、新しいコンテナとすべてのサポートコンテナを起動します露出したポートのアプリケーション
- 実行中のプロセスを停止し、再構築して再起動します。
- (構築し、サービスを実行するためにDockerfile
CMD
が必要です) - ストップサービス:
docker-compose kill SERVICE
- 再起動サービス
docker-compose up -d --no-deps SERVICE
問題がでもあります再起動に時間がかかりすぎる vsローカルでサービスを再起動しているfドッカー)。この設定は、変更されたファイルをホットリロードすることができるインタープリター言語では問題ないと思われますが、コンパイルされた言語サービス用の適切な高速システムをまだ見つけていません。
実行docker-compose up
をしかし:
ドッカーはノートパソコンで、またはリモートで実行していますか? 「ローカルでサービスを再開することと対話する」という意味を思い出してください。 「再起動には時間がかかりすぎる」原因は何ですか?コンパイルは遅いですか?起動? – thaJeztah
私はこの問題をより明確にしようとしました。ドッカーはドッカーマシンを介して実行されています。私が「ローカルで走っている」と言うと、ドッカーを使わずにサービスを構築して実行することを意味します。これはオプションですが、データベースのURLなどを変更する必要があることを意味します。 –
ああ、私の最高の推測は、まずホストとVirtualBox VMの間のファイル共有は(うまくいけば)あまり実演していない。これはVirtualBoxのファイル共有の制限です。第2に、VMはパフォーマンスを最大限に調整することができないため、コンパイル時間に差が生じる可能性があります。やってみましたか? VMのメモリおよび/またはCPUの数を増やしますか? – thaJeztah