PHP入門:ビルトインサーバの構築 -Vol.4-

スポンサーリンク
PHP入門:ビルトインサーバの構築 -Vol.4- 環境構築
PHP入門:ビルトインサーバの構築 -Vol.4-
この記事は約4分で読めます。
よっしー
よっしー

こんにちは。よっしーです(^^)

今日は、Docker環境でPHPのビルトインサーバの実行環境を構築する方法について解説しています。

スポンサーリンク

背景

PHPのビルトインサーバを利用した環境を構築する機会がありましたので、その時の内容を備忘として記事に残しました。

前回の記事は、ビルトインサーバについて解説しています。

ファイル一覧

下記のファイルを作成しました。この記事では、Makefile について解説しています。

        new file:   Makefile
        new file:   compose.yml
        new file:   php_server/Dockerfile
        new file:   php_server/src/router.php

Makefile

SHELL = /bin/bash
WORK_DIR = ./
.DEFAULT_GOAL := help

# コンテナの状態
.PHONY: ps
ps:
	cd $(WORK_DIR) \
	&& docker compose ps

# アプリのビルド
.PHONY: build
build:
	cd $(WORK_DIR) \
	&& docker compose build

# アプリの起動
.PHONY: up
up:
	cd $(WORK_DIR) \
	&& docker compose up -d

# アプリの停止
.PHONY: down
down:
	cd $(WORK_DIR) \
	&& docker compose down

# コンテナの削除
.PHONY: clean
clean:
	cd $(WORK_DIR) \
	&& docker compose down --rmi all --volumes --remove-orphans

# ログ
.PHONY: logs
logs:
	cd $(WORK_DIR) \
	&& docker compose logs

# help
.PHONY: help
help:
	@grep -B 2 -E '^[a-zA-Z_-]+:' Makefile \
	| grep -v '.PHONY' \
    | grep -v -E '^\s*$$' \
	| tr '\n' ',' \
	| sed 's/--,/\n/g' \
	| awk -F, '{printf "%-20s %s\n", $$2, $$1}'

Makefileをステップごとの解説は下記になります。

  1. SHELLとWORK_DIR:
    • SHELL = /bin/bash: この行は、コマンドを実行するために使用されるシェルを/bin/bashに設定しています。
    • WORK_DIR = ./: WORK_DIR変数は現在のディレクトリ(./)に設定されています。
  2. デフォルトのゴール:
    • .DEFAULT_GOAL := help: この行は、特定のターゲットが指定されていない場合に実行されるデフォルトのターゲット(ゴール)を設定しています。この場合、helpに設定されています。
  3. ターゲットと説明:
    • ps: docker compose psを使用してコンテナの状態を表示します。
    • build: docker compose buildを使用してアプリケーションをビルドします。
    • up: docker compose up -dを使用してアプリケーションを起動します(デタッチモード)。
    • down: docker compose downを使用してアプリケーションを停止します。
    • clean: docker compose down --rmi all --volumes --remove-orphansを使用してコンテナ、イメージ、ボリューム、孤立したリソースを削除します。
    • logs: docker compose logsを使用してアプリケーションのログを表示します。
    • help: 利用可能なターゲットとその説明を表示します。
  4. ヘルプターゲット:
    • helpターゲットは、Makefileからターゲット名とその説明を抽出し、表示用に整形するためにgreptrawkを使用しています。

このMakefileは、Dockerベースのアプリケーションを管理するための便利な一連のコマンドを提供しています。これらのターゲットは、makeコマンドに続いてターゲット名(例:make psmake buildなど)を使用して実行できます。

おわりに

今日は、Docker環境でPHPのビルトインサーバの実行環境を構築する方法について解説しました。

よっしー
よっしー

何か質問や相談があれば、コメントをお願いします。また、エンジニア案件の相談にも随時対応していますので、お気軽にお問い合わせください。

それでは、また明日お会いしましょう(^^)

コメント

タイトルとURLをコピーしました