Cómo configurar la pila LAMP con Docker Compose

5 feb 2024 3 min di lettura
Cómo configurar la pila LAMP con Docker Compose
Indice dei contenuti

Introducción

En el panorama cambiante del desarrollo web, aprovechar el poder de la contenedorización a través de Docker se ha convertido en un punto de inflexión, especialmente cuando se implementan entornos complejos como una pila LAMP (Linux, Apache, MySQL, PHP). Este tutorial tiene como objetivo guiarlo a través de un proceso fluido de configuración de una pila LAMP usando Docker-Compose, con un toque adicional: incluiremos un paso para personalizar su entorno PHP para incluir módulos adicionales y Composer, el administrador de dependencias de PHP.

Requisitos previos

Antes de sumergirnos en el proceso de configuración, asegúrese de haber instalado lo siguiente en su sistema:

  • Docker: una plataforma para desarrollar, enviar y ejecutar aplicaciones en contenedores.
  • Docker-Compose: una herramienta para definir y ejecutar aplicaciones Docker de múltiples contenedores.

Puede verificar la instalación de estas herramientas ejecutando docker -v y docker-compose -v en su terminal. Si aún no los ha instalado, visite el sitio web oficial de Docker para obtener instrucciones de instalación.

Paso 1: cree un archivo Docker-Compose

Comience creando un archivo docker-compose.yml en el directorio de su proyecto. Este archivo es crucial ya que organiza la configuración de su pila LAMP, especificando cómo se debe construir e interactuar cada servicio.

version: '3'
 services:
 web:
 build:.
 container_name: apache-php
 ports:
 - "80:80"
 volumes:
 -./www:/var/www/html
 db:
 image: mysql:8
 container_name: mysql-server
 command: --default-authentication-plugin=mysql_native_password
 restart: always
 environment:
 MYSQL_ROOT_PASSWORD: secure_password
 MYSQL_DATABASE: mydb
 MYSQL_USER: myuser
 MYSQL_PASSWORD: password
 ports:
 - "3306:3306"
 volumes:
 - db_data:/var/lib/mysql
 volumes:
 db_data:

Esta configuración detalla dos servicios principales: web para Apache y PHP y db para MySQL. Tenga en cuenta la build:. directiva en web, que indica que Docker debe usar un Dockerfile en el directorio actual para crear este servicio.

Paso 2: personaliza PHP con un Dockerfile

Para incrustar módulos PHP y Composer adicionales, cree un Dockerfile en el mismo directorio que su docker-compose.yml. Este Dockerfile le indicará a Docker cómo preparar su entorno PHP personalizado.

FROM php:8.3-apache

 # Install additional PHP modules
 RUN docker-php-ext-install pdo_mysql mysqli

 # Install Composer
 RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \
 php composer-setup.php --install-dir=/usr/local/bin --filename=composer && \
 php -r "unlink('composer-setup.php');"

 # Enable Apache mod_rewrite
 RUN a2enmod rewrite

Este Dockerfile extiende la imagen php:8.3-apache agregando las extensiones pdo_mysql y mysqli para interacciones con bases de datos e instalando Composer globalmente.

Paso 3: crear y ejecutar contenedores

Con el archivo docker-compose.yml listo, ahora puede iniciar su pila LAMP. Abra una terminal, vaya al directorio de su proyecto donde se encuentra el archivo docker-compose.yml y ejecute el siguiente comando:

docker-compose up -d

El indicador -d ejecuta sus contenedores en modo independiente, liberando su terminal. Docker-Compose extraerá las imágenes necesarias de Docker Hub, creará los servicios definidos y configurará la red y los volúmenes según lo especificado.

Paso 4: acceda a la pila LAMP

Una vez que sus contenedores estén en funcionamiento, puede acceder a su servidor Apache visitando http://localhost en su navegador web. Debería ver la página predeterminada de Apache o el contenido de su directorio ./www si agregó archivos HTML o PHP.

Para interactuar con su base de datos MySQL, puede usar el siguiente comando para acceder a la CLI de MySQL:

docker-compose exec db mysql -uroot -proot

Si es necesario, reemplace root con la contraseña que definió en el archivo docker-compose.yml.

Paso 5: Administrar la pila LAMP

Docker-Compose facilita detener, iniciar y reconstruir servicios. Utilice los siguientes comandos según sea necesario:

  • Para detener sus contenedores: docker-compose down
  • Para iniciar contenedores nuevamente: docker-compose up -d
  • Para reconstruir servicios después de realizar cambios: docker-compose up -d --build

Conclusión

La implementación de una pila LAMP utilizando Docker y Docker-Compose no solo simplifica el proceso de configuración, sino que también garantiza la coherencia entre diferentes entornos de desarrollo, prueba y producción. Siguiendo este tutorial paso a paso, habrá aprendido cómo definir sus servicios en un archivo docker-compose.yml, ejecutar sus contenedores y administrar su pila LAMP sin esfuerzo. Con estas habilidades, ahora podrá implementar aplicaciones web de manera rápida y eficiente, aprovechando el poder de la contenedorización.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.