私は、nginx、php-fpm、およびmariadbで構成されるWebアプリケーションXYを持っています。私はドッキングマシンを使って自分のコンテナに至るまですべてを分割しました。それは魅力的なものです。開発目的のために、私はちょうど実際のソース/ PHPコードを含むローカルディレクトリをマウントしました。これをステージング環境または実稼働環境にデプロイするとき、Dockerのドキュメントはソースコードを実際のイメージに焼き付けるように指示しました。この場合、ソースコードをnginxにコピーするだけでなく、php-fpmイメージをビルドするときに、両方とも必要なのでコピーする必要があります。Dockerを使用してWebアプリケーションをコンテナ化する:複数のイメージにソースコードをコピーしますか?
アプリケーション自体が大きくなると(資産とライブラリが増えると)、nginxとphp-fpmの両方の画像が大きくなります。私の意見では、これは何とか「可能な限り小さな画像を維持する」ルールに違反し、これは私にとって非常に間違っているようです。私はいつも自分自身を繰り返したり、ロジックを1か所に保存したり、物事をエンコードしたりすることを学ばなかった。
これは正しい方法ですか、何か不足していますか?
明らかなことは、2つの間でコードを共有するボリュームを作成することです。しかし、これは私にとっては解決策ではありません。私はすべてのものを持ち運びできるようにしたいからです。 :/ – kriskbx
「できるだけ画像を小さくする」が良いです。しかし、PHPソースコードをイメージに焼き付けないと、どのようにイメージが完全に移植可能で、どのような環境でも設計どおりに実行できるようになるでしょうか? Docker Hub https://hub.docker.com/_/wordpress/のWordpress Dockerイメージについて考えてみましょう。 – Tuan
WordPressのドッカー画像は、Webサーバー、インタプリタ、データベースなどの複数のプロセスを1つのコンテナで実行します。そこにソースコードを焼くことは問題ありません。 1つのコンテナで1つのプロセスだけを実行したいので、アプリケーション全体が複数のコンテナで構成されています。ソースを単一のイメージにコピーするのに問題はありませんが、何度もやり直さなければなりません。 nginxには実際のコードが必要です.phpには実際のコードが必要です。また、コードを必要とするワーカープロセスもあります。複数の画像でソース全体を焼くことはちょっと間違っているようですので、ここでベストプラクティスを尋ねました。 – kriskbx