====== Docker Compose: nginx + PHP ======
Despliegue de una arquitectura multicontenedor compuesta por un servidor web Nginx y un intérprete de PHP.
* Imagen Nginx: https://hub.docker.com/_/nginx
* Imagen PHP: https://hub.docker.com/_/php
version: '3.4'
services:
webserver:
container_name: lar-nginx
image: nginx:alpine
ports:
- "80:80"
volumes:
- ./htdocs:/usr/share/nginx/html
- ./config/nginx/site.conf:/etc/nginx/conf.d/default.conf
php:
container_name: lar-php
build:
# dockerfile: Dockerfile
context: .
volumes:
- ./htdocs:/usr/share/nginx/html
Contenido del fichero ''site.conf'':
server {
listen 80;
index index.php index.html;
server_name localhost;
root /usr/share/nginx/html/;
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass lar-php:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
El nombre del host que se le pasa a ''fastcgi_pass'' debe coincidir con lo establecido en ''container_name''.
Contenido del ''Dockerfile'':
FROM php:7-fpm-alpine
RUN docker-php-ext-install mysqli pdo_mysql
# RUN docker-php-ext-install session
# RUN docker-php-ext-install pdo
El directorio raíz desde el que el servidor web enviará los documentos está establecido en ''./htdocs''.