informatica:sistemas_operativos:virtualizacion:docker:docker_compose:lemp
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Próxima revisión | Revisión previa | ||
| informatica:sistemas_operativos:virtualizacion:docker:docker_compose:lemp [2021/05/16 11:20] – creado tempwin | informatica:sistemas_operativos:virtualizacion:docker:docker_compose:lemp [2021/05/16 14:07] (actual) – [site.conf] tempwin | ||
|---|---|---|---|
| Línea 2: | Línea 2: | ||
| Despliegue de una arquitectura multicontenedor compuesta por un servidor web Ngin, un intérprete de PHP y un motor de base de datos MariaDB | Despliegue de una arquitectura multicontenedor compuesta por un servidor web Ngin, un intérprete de PHP y un motor de base de datos MariaDB | ||
| + | |||
| + | ===== Imágenes ===== | ||
| * Imagen Nginx: https:// | * Imagen Nginx: https:// | ||
| * Imagen PHP: https:// | * Imagen PHP: https:// | ||
| * Imagen MariaDB: https:// | * Imagen MariaDB: https:// | ||
| + | * Imagen de Adminer: https:// | ||
| + | |||
| + | <WRAP center round info 60%> | ||
| + | La imagen de Adminer no es necesaria, aunque la incluyo por la comodida de tener una aplicación web para gestionar la base de datos y así no depender de tener instalado un cliente de base de datos | ||
| + | </ | ||
| + | |||
| + | ===== Ficheros ===== | ||
| + | |||
| + | La estructura sería la siguiente: | ||
| + | |||
| + | < | ||
| + | ├── app | ||
| + | ├── docker | ||
| + | │ ├── nginx | ||
| + | │ │ ├── site.conf | ||
| + | │ ├── php | ||
| + | │ | ||
| + | ├── docker-compose.yml | ||
| + | </ | ||
| + | |||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | ==== docker-compose.yml ==== | ||
| <code yaml> | <code yaml> | ||
| - | version: '3.4' | + | version: ' |
| services: | services: | ||
| webserver: | webserver: | ||
| - | container_name: | ||
| image: nginx: | image: nginx: | ||
| - | | + | |
| - | - "80:80" | + | # |
| volumes: | volumes: | ||
| - | - ./htdocs:/ | + | |
| + | | ||
| - ./ | - ./ | ||
| + | # db data persistence | ||
| + | ports: | ||
| + | - 8080:80 | ||
| php: | php: | ||
| - | | + | |
| - | build: | + | build: . |
| - | # dockerfile: Dockerfile | + | |
| - | context: . | + | |
| volumes: | volumes: | ||
| - | | + | |
| + | database: | ||
| + | image: mariadb: | ||
| + | environment: | ||
| + | - MYSQL_ROOT_PASSWORD=abcd1234. | ||
| + | adminer: | ||
| + | image: adminer | ||
| + | restart: always | ||
| + | ports: | ||
| + | - 8123:8080 | ||
| </ | </ | ||
| - | Contenido del fichero '' | + | ==== site.conf |
| - | < | + | Configuración del virtual host de nginx. |
| + | |||
| + | < | ||
| server { | server { | ||
| listen 80; | listen 80; | ||
| Línea 40: | Línea 80: | ||
| try_files $uri =404; | try_files $uri =404; | ||
| fastcgi_split_path_info ^(.+\.php)(/ | fastcgi_split_path_info ^(.+\.php)(/ | ||
| - | fastcgi_pass | + | fastcgi_pass php:9000; |
| fastcgi_index index.php; | fastcgi_index index.php; | ||
| include fastcgi_params; | include fastcgi_params; | ||
| Línea 53: | Línea 93: | ||
| </ | </ | ||
| - | Contenido del '' | + | ==== Dockerfile |
| - | <code yaml> | + | En este fichero modificaremos la imagen de base de PHP para adaptarlo a nuestros requisitos: |
| - | 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 | + | <code Dockerfile> |
| + | FROM php: | ||
| + | |||
| + | # Modificamos UID y GID del usuario www-data para que coincida con el | ||
| + | # del usuario | ||
| + | # Si no fuese Alpine, se podría hacer con `usermod -u <UID> www-data` | ||
| + | # Más info: | ||
| + | # https:// | ||
| + | |||
| + | RUN deluser www-data && adduser -DH -h / | ||
| + | RUN docker-php-ext-install mysqli pdo_mysql | ||
| + | </ | ||
informatica/sistemas_operativos/virtualizacion/docker/docker_compose/lemp.1621156843.txt.gz · Última modificación: por tempwin
