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コマンドが使えるようになります。