phpの開発環境用のdocker-compose

fattyrabbit/php-fpmを利用したローカル開発環境のdocker-compose

ソース:https://bitbucket.org/FattyRabbit/php-dev-docker-compose/src/master/

概要:phpの開発(laravelの開発用)のためにlocal環境を作成する目的で、以下を目指しました。 - 出来る限り軽い - 他のバージョンのPhpを同時に動かすそれで選択したのが「nginx」+「php-fpm」の構成しました。

php-fpmのカスタマイズ

元になるphpのfpmは問題点としてListenポートが「9000」固定のところが問題でした。その為にphp-fpm(まずは7.3)のDockerfileを改善してContainerを実行する際に設定出来るように修正を加えました。ソース:https://bitbucket.org/dockerfile_test/php-fpm/src/master/

 proxy:
build: nginx
container_name: proxy
build:
context: .
dockerfile: docker-nginx/Dockerfile
volumes:
- ./etc/logs/nginx:/etc/nginx/logs
- ./etc/nginx/conf.d:/etc/nginx/conf.d
- ./etc/nginx/letsencrypt:/etc/letsencrypt
- ./www:/var/www/
ports:
- 80:80
- 443:443

nginx

重要な問題としてテストサーバーの変動があった場合、Dockerfile内でCOPYを利用すると再Buildしても上手く更新されない場合がありましたので、サーバーの管理をvolumesで管理するように設定しました。

php-7.3:
build:
context: .
dockerfile: docker-php-7.3/Dockerfile
args:
LISTEN_PORT: 9001
container_name: php-7.3
volumes:
- ./www:/var/www/
- ./etc/php/php.ini:/usr/local/etc/php/php.ini

php-fpm

このではListenのポートを「9001」にしてみました。

nginxの設定

実際のウェブサーバーでphpを利用する設定です。

location ~ \.php$ {
fastcgi_pass php-7.3:9001;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
Anonymous
Anonymous

Page top icon