開発用と本番用で異なるdockerfileを構成する方法
2023-10-15 10:36:49
質問
laravelのプロジェクトで、開発用と本番用のdockerを使用しています。開発用と本番用で若干異なるdockerfileを持っています。例えば、私は開発環境のDockerコンテナにローカルディレクトリをマウントして、コードの変更のたびにDockerビルドを行う必要がないようにしています。
マウントされたディレクトリは、Dockerコンテナの実行時にのみ利用可能なので、開発用のdockerfileに "composer install" や "npm install" のようなコマンドを入れることができません。
現在、2つのdockerファイルを管理していますが、これを1つのdockerファイルで行い、docker build時に実行するコマンドをパラメータで決める方法はないでしょうか。
私が達成しようとしていることは
ドッカーファイルで
...
IF PROD THEN RUN composer install
...
dockerビルド時
docker build [PROD] -t mytag .
どのように解決するのですか?
UPDATE(2020年)です。 これが3年前に書かれて以来、多くのことが変わりました(このトピックに関する私の意見も含めて)。私が提案する方法は 1つのdockerfile を使用し、スクリプトを使用することです。詳しくは yamenk さんの回答 .
ORIGINAL:
2種類のDockerfilesを使用することができます。
# ./Dockerfile (non production)
FROM foo/bar
MAINTAINER ...
# ....
そして2つ目。
# ./Dockerfile.production
FROM foo/bar
MAINTAINER ...
RUN composer install
ビルドコマンドを呼び出す際に、どのファイルを使うべきかを指示することができます。
$> docker build -t mytag .
$> docker build -t mytag-production -f Dockerfile.production .
関連
-
[解決済み] dockerでビルド中に環境変数を設定する方法
-
[解決済み] Dockerfileの'COPY'と'ADD'コマンドの違いは何ですか?
-
[解決済み] DockerfileのCMDとENTRYPOINTの違いは何ですか?
-
[解決済み] Dockerfileにコメントを入れるにはどうしたらいいですか?
-
[解決済み] DockerfileのRUNとCMDの違いについて
-
[解決済み] Dockerコンテナにユーザーを追加する方法は?
-
[解決済み】Dockerは仮想マシンとどう違うの?
-
[解決済み] [Solved] 失敗した `docker build` のファイルシステムを検査するにはどうしたらいいですか?
-
[解決済み】ビルド中にDockerfileでホストボリュームをDockerコンテナにマウントする方法
-
[解決済み】Docker Postgresのスクリプトでユーザー/データベースを作成する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Docker Compose: そのようなイメージはありません
-
[解決済み] docker webdevの良いワークフローは何だろう?
-
[解決済み] Linuxでdockerを停止する方法
-
[解決済み] Docker build 「archive.ubuntu.comを解決できませんでした」 apt-get fails to install anything
-
[解決済み] docker-compose build` と `docker build` の違いは何ですか?
-
[解決済み] RabbitMQ Dockerコンテナの起動時に初期ユーザーを追加する方法は?
-
[解決済み] 画像に複数のタグを付けることは可能ですか?
-
[解決済み] Docker: 実行中のDockerコンテナ内のオープンソケットをリストアップする方法はありますか?
-
[解決済み] gosuとUSERを使ったDockerの比較
-
[解決済み] docker runとdocker container runの違いは何ですか?