2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

dockerのコマンドって長いと思いませんか?また複数のコマンドを1つのコマンドで同時に実行できるといいですよね.実はMakefileは非常に奥が深いが,ここでは簡単な使い方を紹介する.

詳しいMakefileの説明は以下の記事から
[鋭意製作中]

Makefileのルール

Makefileに含まれる情報は,以下の通りである.

  • 変数の定義(変数,自動変数,暗黙の変数,特殊変数)
  • ルール
  • 他のMakefileを取得するための情報,デバッグ情報などなど
Makefileの文法
ターゲット:前提条件
  コマンド

実際の例

Djangoプロジェクトであることを仮定する.docker-compose.ymlにはプロジェクトを立ち上げるためのpython manage.py runserverが実行できるようになっているとする.

run:
    docker-compose up -d

run/migration: run
    docker-compose exec -T web python manage.py makemigrations
    docker-compose exec -T web python manage.py migrate

stop:
    docker-compose stop

down:
    docker-compose down

これをプロジェクトのルートに作成して,ルートにおいて以下のコマンドを実行する.

make run

これでdocker compose -dが実行されるため,python manage.py runserverが実行されサーバーが立ち上げる.
また,

make run/migration

これは前提条件としてrunを使用しているのでサーバーの軌道からマイグレーションまで一回で行うことができる.
これでdjangoプロジェクトにおいて以下のコマンドを実行するのでマイグレーションを行うことができる.

python manage.py makemigration
python manage.py migrate

また,

make stop

これでdocker compose stopができる.

make down

これでdocker compose downができる.

このように自分でルールとコマンドを作成すれば様々なコマンドをmake hogehogeの形で実行することができる.今回は簡単な例にしたが,プロキシを使用している場合など,実行コマンドが長かったり,実行に複数のコマンドを使用する際に非常に有用である.

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?