DockerによるPHP cli 実行環境

会社のプロジェクトではPHPを使用しています。自分の個人的なMacにPHPがインストールされていません。いかんせんPHPランタイムインストールがめんどくさいですし、ローカル環境を汚したくない。そこでdockerで実行環境を準備することにしました。

前提条件:dockerインストール済み。Mac・zsh系ターミナルを使用。

PHPファイル

まずはphpファイルを準備しましょう。ファイル名はmain.phpとしています。

<?php

echo "Hello World!";

Docker経由で実行

Docker経由で実行!

# zsh
docker run --rm -v $(pwd):/app -w /app php:8.3-cli php main.php
# 結果:Hello World!

コマンドの解説

docker run --rm -v $(pwd):/app -w /app
  • docker run : コンテナを作成して起動する。
  • --rm : コンテナ終了時に自動削除
  • -v $(pwd):/app : 現在のディレクトリをコンテナ内の”/app”ディレクトリにマウント(共有)。$(pwd)はコマンドの結果を文字列として出力している。$(pwd)は現在のディレクトリを表す”.”でも動く。
  • -w /app : コンテナ内の作業ディレクトリを指定
php:8.3-cli

Dockerのイメージ名。”リポジトリ:タグ”という構造で、ローカルにphp:8.3-cliというイメージがないか検索する。ローカルになければDocker hubを検索しpullを行う。phpにはいくつかバリエーションがあり、代表的なのはcliとapacheの2種類。cliはコマンドライン実行用で、apacheはWebサーバー起動用に使用される。

php main.php

phpを実行するためのコマンド

alias作成

毎回docker run --rm -v $(pwd):/app -w /app php:8.3-cli php main.phpを入力するのは大変なので、aliasを作成して、簡単にコマンドを叩けるようにしましょう。

alias php-docker='docker run --rm -v $(pwd):/app -w /app php:8.3-cli php'

これでphp-docker {ファイル名}で動くようになりました。

php-docker main.php
# 結果:Hello World!

alias永続化

最後にこのaliasを永続化して、他のシェルセッションでも利用できるようにしましょう。~/.zshrcファイルにこのaliasを書き込みます。

コマンドラインでcode ~/.zshrcを叩いて、.zshrcファイルを編集します。.zshrcファイルに先ほどのaliasコマンドを記入してください。

alias php-docker='docker run --rm -v $(pwd):/app -w /app php:8.3-cli php'

そしてsource ~/.zshrcコマンドで更新すればphp-dockerコマンドが使えるようになります。

投稿者 Hiro

医師免許を持ってるシステムエンジニアです。卒後3年目。 Python (flask, tensorflow), JS・TS (React, Next.js), PHP, SQLなど使用。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です