【docker】dockerファイルを使用したPHPの環境構築

dockerファイルからdockerイメージを生成し、ローカルPCにPHPの開発環境を構築します。

ベースイメージはCentOs7を使用し、apache2.4、php7.3をインストールします。
ローカルPCは Mac を使用します。
なお、以下が理解出来た後に、当項を読むことをお勧めします。

合わせて読もう

dockerファイルについて

前提と準備

dockerのインストール

dockerをインストールして下さい。
dockerが使用出来ることを前提としています。

作業ディレクトリ

作業ディレクトリはローカルPCの任意のディレクトリとします。
手順では以下を作業ディレクトリとして使用します。
適宜各自の環境に読み替えて手順を行って下さい。

mkdir -p /Users/dennie/Documents/30_docker/test

共有ディレクトリ

webサーバのドキュメントルートとローカルPCの開発ディレクトリを共有する為、dockerコンテナとの共有ディレクトリを作成します。
このディレクトリにPHPのプロジェクトを作成します。
手順では以下を共有ディレクトリとして使用するので、ローカルPCに以下のディレクトリを作成します。
なお、適宜各自の環境に読み替えて手順を行って下さい。

mkdir -p /Users/dennie/Documents/30_docker/test/php_prj

dockerfileの内容

dockerファイルの内容は以下を参照して下さい。

また、dockerファイルのファイル名は”dockerfile”とし以下へ配置します。

/Users/dennie/Documents/30_docker/test

PHP起動確認ファイルの内容

webサーバ上でphpが実行することを確認する為、”index.php” という名前で確認ファイルを作成します。
内容は以下になります。

<?php phpinfo(); ?>

上記内容のファイルを 共有ディレクトリ へ配置します。

/Users/dennie/Documents/30_docker/test/php_prj

手順

作業ディレクトリへ移動

作業ディレクトリへ移動します。

cd /Users/dennie/Documents/30_docker/test

イメージの作成

buildコマンドを使用して、dockerfileからイメージを生成します。(※1)
以下は、カレントディレクトリに dockerfile が存在し、dockerイメージの名前を”centos_php″として、 buildコマンド を実行しています。
※1 ・・・ CentOs7で各パッケージをインストールする時にキーが必要で警告が出ますが、インストールは行えます。

docker build -t centos_php .

コンテナの起動

作成したイメージからコンテナを起動します。
起動コマンドの説明は、以降で説明します。

docker run -itd --privileged --name centos_php_container -p 3002:80 -v /Users/dennie/Documents/30_docker/test/php_prj:/var/www/html centos_php /sbin/init

phpの確認

ローカルホストへhttpで接続し、webサーバ上でphpが動作することを確認して下さい。

http://localhost:3002

コンテナ起動コマンドの説明

今回指定した起動コマンドを説明します。

ポート指定

dockerfile へ apacheのポート80 を開放するように記載したので、ホストOSからポート3002を使用するとゲストOSでポート80が使用されるように指定します。

-p 3002:80

共有ディレクトリ

ホストOSとゲストOSのディレクトリを共有し、共有したディレクトリをドキュメントルートとして使用します。

-v /Users/dennie/Documents/30_docker/test/php_prj:/var/www/html

最後に

次回はさらにmysqlのコンテナを同じネットワークに参加させて、LAMP環境を構築します。

© DeNnie.Lab All Rights Reserved.