takaya030の備忘録

PHP、Laravel、Docker などの話がメインです

Docker で nginx + php-fpm を動かす

Docker で nginx + php-fpm を動かすまでの作業手順メモ

検証環境

Docker Toolbox 1.10.3 と同じ構成です。

  • VirtualBox 5.0.16
  • docker 1.10.3
  • docker-machine 0.6.0
  • dokcer-compose 1.6.2

docker-compose.yml の作成

Docker ホストマシン (CoreOS) に /home/docker/phpfpm ディレクトリを作り、そこに下記の内容でファイルを配置します。

phpfpm
│  docker-compose.yml
│  
├─nginx
│    Dockerfile
│    server.conf
│
└─php7
      Dockerfile
      index.html

docker-compose.yml

nginx: 
  build: ./nginx
  ports: 
    - "80:80"
  links: 
    - php7

php7: 
  build: ./php7

nginx/Dockerfile

FROM nginx:latest
MAINTAINER takaya030

ADD server.conf /etc/nginx/conf.d/server.conf

nginx/server.conf

server {
    listen 80 default;
    server_name _;
    root /var/www/html;
    index index.php index.html index.htm;
    charset utf-8;

    access_log off;
    error_log off;

    location / {
        try_files $uri $uri/ /index.php$is_args$args;
    }

    location ~ \.php$ {
        fastcgi_pass phpfpm_php7_1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include       fastcgi_params;
    }
}

php7/Dockerfile

FROM php:7-fpm
MAINTAINER takaya030

COPY index.php /var/www/html/

php7/index.php

<?php
	phpinfo();

コンテナの起動

docker@dev:~$ cd /home/docker/phpfpm/
docker@dev:~/phpfpm$ docker-compose up -d

動作確認

web ブラウザで http://192.168.99.100/ にアクセスして下の画像のように表示されるか確認。

コンテナの停止

docker@dev:~$ cd /home/docker/phpfpm/
docker@dev:~/phpfpm$ docker-compose stop