良いdocker webdevワークフローは何でしょうか?
私がいることを予感していドッキングウィンドウが大幅に私のwebdevのワークフローを改善できるが-しかし、スタックにドッキングウィンドウを追加するプロジェクトにアプローチする方法を私はかなりの周り私の頭をラップするために管理していません。 基本的なソフトウェアスタックは次のようになります。 ソフトウェア カスタムLAMPスタックを提供するDockerイメージ 複数のモジュールを持つApache MYSQL PHP 一部のCMS、たとえばSilverstripe ギット ワークフロー ワークフローは次のようになると想像できます。 開発 Dockerfile上記の要件を満たすLAMPコンテナを定義するを作成します REQ:マシンは起動直後にapache / mysqlを開始するはずです Dockerイメージをビルドする CMSの実行に必要なファイルをegなどにコピーします。 ~/dev/cmsdir ~/dev/cmsdir/バージョン管理下に置く Dockerコンテナーを実行~/dev/cmsdirし/var/www/て、コンテナーにマウントします データベースに入力する で働く /dev/cmsdir/ Dockerコンテナーをコミットしてシャットダウンする 配備 リモートホストを設定します(例:ansible) コンテナーイメージをリモートホストにプッシュする cmsdirgitを介したプロジェクトのフェッチ Dockerコンテナーを実行し、データベースをプルしてマウントcmsdirします/var/www さて、これは紙の上ではすべてとてもきれいに見えますが、これがまったく正しいアプローチであるかどうかはよくわかりません。 質問: ローカルでの開発中に、コンテナインスタンスの再起動間でデータベースを保持するにはどうすればよいですか?または、コンテナーをスピンダウンする前に毎回sql-dumpを実行する必要がありますか? dbとapacheサーバーに個別のコンテナインスタンスを用意する必要がありますか?それとも、上記のユースケースでは単一のコンテナがあれば十分でしょうか? データベースとサーバーに別々のコンテナーを使用している場合、それらを同時に上下に自動化するにはどうすればよいですか? 実際にどのように/dev/cmsdir/コンテナーの/var/www/ディレクトリにマウントしますか?これにはデータボリュームを使用する必要がありますか? 私は落とし穴を逃しましたか?簡略化できるものはありますか?