docker(docker-compose)で10分でnginx+mysql+php-fpmの環境を作る
docker-composeを使ったら非常に簡単にWEBの環境が作れました
ホスト環境
centos7
docker-compose、dcokerインストール
yum update #dockerインストール curl -sSL https://get.docker.com/ | sh #docker-composeインストール curl -L https://github.com/docker/compose/releases/download/1.11.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose
ファイル構造(最終的にdata/php/publicをweb上に公開します)
# tree . ├── containers │ ├── mysql │ │ └── Dockerfile │ ├── nginx │ │ ├── conf │ │ │ └── default.conf │ │ └── Dockerfile │ └── php-fpm │ ├── conf │ │ └── php.ini │ └── Dockerfile │ ├── data │ ├── mariadb │ └── php │ └── public └── docker-compose.yml
各ファイル
docker-compose.yml
#docker-compose.yml version: "2" services: php: build: ./containers/php-fpm volumes: - "./data/php:/var/www/html" environment: DB_HOST: db DB_PORT: 5432 nginx: build: ./containers/nginx ports: - 80:80 - 443:443 links: - php mysql: build: ./containers/mysql volumes: - "./data/mariadb:/var/lib/mysql" environment: MYSQL_ROOT_PASSWORD: root MYSQL_PASSWORD: ryouzi01 MYSQL_USER: abot MYSQL_DB: abot expose: - "3306"
php Dockerfile
FROM php:fpm WORKDIR /var/www/html RUN apt-get update && docker-php-ext-install mbstring mysqli pdo_mysql ADD conf/php.ini /usr/local/etc/php/conf.d
nginx Dockerfile
FROM nginx:1.9.12 ADD conf/default.conf /etc/nginx/conf.d
mysql Dockerfile
FROM mariadb:10.1.18 VOLUME /etc/localtime:/etc/localtime:ro RUN sed -i -e "s/^#bind-addresss*=s*0.0.0.0/bind-address=0.0.0.0/" /etc/mysql/my.cnf
nginx.conf
server { listen 80 default; server_name localhost; charset utf-8; root /var/www/html; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; #rewrite ^(.+)/$ $1; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { root /var/www/html/public; fastcgi_pass php:9000; fastcgi_index index.php; #fastcgi_split_path_info ^(.+\.php)(.+)$; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
php.conf
#以下php.iniで使うものを設定 date.timezone = Asia/Tokyo
上記のファイルが全部そろったらdockerコンテナ起動
#docker-compose.ymlがある階層で docker-compose build docker-compose up -d docker-compose stop
以上、非常に簡単に環境が作れて、かつ再構築も簡単