アルアカ - Arcadia Academia

Arcadia Academiaは「エンジニアリングを楽しむ」を合言葉に日本のデジタル競争力を高めることをミッションとするテックコミュニティです。

docker-compose.yamlをMakefileで管理する

Featured image of the post

Docker環境を効率的に管理するために、docker-compose.yamlファイルをMakefileで扱うことは、複数のDockerコマンドを簡略化し、開発チーム全体で統一した操作方法を提供するのに役立ちます。MakefileにDocker Composeの基本コマンドを定義しておくと、コマンドの入力が短縮され、設定のバリエーションごとに便利なエイリアスが作成できます。

以下に、Docker ComposeのコマンドをMakefileで管理する基本例を紹介します。

[目次を開く]

Makefile例:Docker Composeの基本操作

以下のMakefile例では、docker-compose.yamlファイルを使って、複数の基本的なDocker Compose操作を管理します。

# Docker Composeを使った操作をMakefileで管理する

# サービスの起動
up:
    docker-compose up -d

# サービスの停止
down:
    docker-compose down

# ログの表示
logs:
    docker-compose logs -f

# コンテナ内に入る(例:webというサービス名を想定)
shell:
    docker-compose exec web /bin/sh

# ビルドの実行
build:
    docker-compose build

# コンテナの再起動
restart:
    docker-compose down
    docker-compose up -d

# 不要なイメージやキャッシュをクリアして再ビルド
rebuild:
    docker-compose down --rmi all --volumes
    docker-compose up -d --build

各ターゲットの説明
  1. up
    • docker-compose up -d を実行してバックグラウンドでコンテナを起動します。
  2. down
    • docker-compose down により、すべてのコンテナを停止し、ネットワークも削除します。
  3. logs
    • docker-compose logs -f でリアルタイムのログを表示します。サービスのデバッグ時に役立ちます。
  4. shell
    • docker-compose exec web /bin/shで、webサービス内のコンテナにシェルで入ります。シェルの中で手動操作を行いたい時に使用します。
  5. build
    • docker-compose build でサービスのイメージをビルドします。Dockerfileや設定ファイルの変更を反映したいときに使用します。
  6. restart
    • コンテナを停止して再度起動します。サービスをまとめてリロードする際に便利です。
  7. rebuild
    • docker-compose down --rmi all --volumesで不要なイメージ、ボリュームを削除し、docker-compose up -d --buildでビルドから再度コンテナを立ち上げます。大幅な変更や不要なキャッシュの削除が必要な時に適しています。

Makefileの使い方

上記のMakefileを使用するには、プロジェクトディレクトリでmakeコマンドを実行します。ターゲットごとに次のように指定できます。

make up          # Docker Composeを起動
make down        # Docker Composeを停止
make logs        # ログの確認
make shell       # コンテナ内に入る
make build       # イメージのビルド
make restart     # 再起動
make rebuild     # キャッシュクリアして再ビルド

MakefileでDocker Composeを管理するメリット

  1. コマンドの簡略化:Makefileを使うことで、複雑なDocker Composeコマンドを短く簡潔なコマンドにまとめられます。
  2. 開発効率の向上:一度コマンドを定義すれば、開発チーム内で統一した使い方ができ、作業手順が簡単に共有できます。
  3. 柔軟な運用:Makefileは他のビルドツールやコマンドも組み合わせて書けるため、Docker Compose以外の自動化処理も同じファイル内で管理でき、プロジェクト全体の管理がしやすくなります。

まとめ

Makefileでdocker-compose.yamlを管理すると、Docker Composeの操作がより直感的に行えるようになり、作業の効率と管理性が大幅に向上します。

あなたを爆速で成長させるメンタリングプログラムはこちらから↓↓

RUNTEQ(ランテック) - 実践型Webエンジニア養成プログラミングスクールの入会