Makefileを使ったDockerコマンドの簡略化
概要
Makefileを使ってdocker-composeのコマンドを簡易的に実行してみた。
実行環境
- Windowds 10 Home
- GNU Make 4.2.1
makeツールのインストール
使用しているOSがWindowsの場合はmakeツールを以下の公式インストーラーからインストールする。http://gnuwin32.sourceforge.net/packages/make.htm
インストールの詳細は割愛する。また、使用しているOSがMacOSもしくはLinuxであればデフォルトでインストールされているらしい。
Makefileの作成
今回はDocker-composeコマンドを簡略化する目的でMakeツールを使用するため、docker-compose.ymlと同階層のディレクトリにMakefileを以下のようなキー:バリューの羅列形式で作成する。
{簡略化コマンド}:
{実行コマンド(コマンドは1つ以上)}
例えば今回のdocker-composeのコマンドを簡略化する場合は以下のようになる。
du:
docker-compose up -d --build
dd:
docker-compose down
Makefile内の簡略化コマンドを実行する
では実際にdocker-compose up -d --buildコマンドをMakefileを使って実行する。上記のMakefileを作成し、Makefileと同階層のディレクトリに移動した後、ターミナル内で以下の形式のコマンドを実行する。
make {簡略化コマンド}
今回の場合は
make du
とすることで docker-compose up -d --build コマンドが実行される。(docker-composeを実行するために必要なDocerfileやdocker-compose.ymlは別途作成が必要)
docker-compose down コマンドに関しても同様に
make dd
とターミナルで実行することでdocker-compose downのコマンドが実行される。
Makefileを用いてコマンドを簡略化するメリット
実際にMakefileを使用してみて感じたこと。
- 手動で入力するコマンドが長くなるにつれて発生する誤入力が発生しにくくなる。
- 複数のコマンドを一連の流れで実行できるようになるため、チーム開発する際にコマンド実行の手順をMakefile内でまとめることができる。
また、コマンドを簡略化する昨日の一つにエイリアスがあるため、エイリアスと比較したMakefileを使用するメリットは
- 実行環境依存しにくい
- Makefileを共有するだけですぐに使用可能
などがあげられる。
参考文献
Makefileで楽してdockerコマンドを使おう!https://beyondjapan.com/blog/2020/10/makefile-docker/#Make-2
Discussion