🙌

Makefileを使ったDockerコマンドの簡略化

2022/03/20に公開

概要

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を以下のようなキー:バリューの羅列形式で作成する。

Makefile
{簡略化コマンド}:
	{実行コマンド(コマンドは1つ以上)}

例えば今回のdocker-composeのコマンドを簡略化する場合は以下のようになる。

Makefile
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