Dockerイメージやコンテナの作成時に任意のファイルを指定する方法
Dockerで開発を行っていると、「デフォルトのDockerfileではなく、任意のDockerfileを指定してイメージを作成したい」「複数のdocker-composeファイルを環境ごとに使い分けたい」といった場面がよくあります。
docker buildやdocker composeには、専用のオプションを使って 任意のDockerファイルやComposeファイルを指定できる方法が用意されています。
本記事では、-fオプションや dockerfile 設定を使って、好きなDockerfile・docker-composeファイルを指定してビルドや起動を行う手順を解説します。複数環境の管理やビルド設定の切り替えを効率化したい方はぜひ参考にしてください。
Dockerイメージ作成時に任意のDockerファイルを指定する方法
docker buildコマンドで任意のDokcerファイルを指定する
docker buildコマンドを使用してイメージを作成する際に、デフォルトのDockerfile以外のファイルを使用する場合は、-fオプションを指定することで特定のDockerfileを指定できます。
docker build -f Dockerファイル -t my-image:latest .
Dockerファイルは使用したいDockerfileです。
docker-compose.ymlファイルのbuildセクションで任意のDockerファイルを指定する
docker-compose.ymlのbuildセクションでdockerfileオプションを使用することで、標準のDockerfile以外のファイルを指定してビルドを行うことが可能です。この機能を活用することで、異なるビルド設定や環境に応じて複数のDockerfileを簡単に管理することができます。
services:
app:
build:
context: .
dockerfile: CustomDockerfile
image: my-image2:latest
docker composeで任意のdocker-composeファイルを指定する方法
docker composeコマンドでは、-fオプションを使用して特定のComposeファイルのパスを指定することができます。このオプションを利用することで、デフォルトのdocker-compose.ymlファイル以外のファイルを指定して、コンテナの構成を管理することが可能です。
具体的なコマンドは以下のようになります。
docker compose -f ファイルパス up -d
ここで、ファイルパスは使用したいComposeファイルの絶対パスまたは相対パスです。このコマンドを実行すると、指定したファイルに基づいてサービスが起動します。
コンテナの停止
down実行時も同様に-fオプションを使用します。
docker compose -f ファイルパス down 