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」固定で複数のfpmを同時に利用できないところが問題でした。その為にphpのfpm(まずは7.3)のDockerfileを改善してContainerを実行する際にポートを設定出来るように修正を加えました。
改善したphp-fpmのソース:
https://bitbucket.org/dockerfile_test/php-fpm/src/master/
nginx
何回かテスト中に問題として出たのがサーバーの設定ファイルの修正があった場合、Dockerfile内でCOPYを利用すると再Buildしても上手く更新されない場合がありましたので、サーバーの管理をvolumesで管理するように設定しました。
これでDockerの再起動や中のデモンの再起動でも設定の変更が反映されるようになりました。
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
php-fpm
このではListenのポートを「9001」にしてみました。
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
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;
}
Author And Source
この問題について(phpの開発環境用のdocker-compose), 我々は、より多くの情報をここで見つけました https://qiita.com/FattyRabbit/items/3fda13cfa3ae9411f06d著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .