Tags

, , , , , , , , , , , , ,

Qué Aprenderás

  • Introducción a Docker y Apache
  • Configuración del Entorno de Desarrollo
  • Creación del Dockerfile
  • Creación del Archivo docker-compose.yml
  • Despliegue de la Aplicación PHP
  • Verificación y Pruebas
  • Mejores Prácticas y Consejos

Introducción

Desplegar aplicaciones PHP con Docker y Apache simplifica enormemente el proceso de configuración y mantenimiento del entorno de desarrollo y producción. Docker permite empaquetar una aplicación junto con todas sus dependencias en un contenedor, garantizando que se ejecute de manera consistente en cualquier entorno. En este artículo, aprenderás cómo desplegar una aplicación PHP utilizando Docker y Apache, desde la configuración inicial hasta la puesta en marcha.

Introducción a Docker y Apache

Docker es una plataforma que facilita la creación, despliegue y ejecución de aplicaciones en contenedores. Un contenedor es una unidad estandarizada de software que empaqueta el código y todas sus dependencias para que la aplicación se ejecute de manera rápida y fiable en diferentes entornos.

Apache es uno de los servidores web más utilizados en el mundo. Es conocido por su flexibilidad, robustez y facilidad de configuración, lo que lo convierte en una elección popular para alojar aplicaciones web.

Configuración del Entorno de Desarrollo

Antes de comenzar, asegúrate de tener Docker instalado en tu sistema. Puedes descargar e instalar Docker desde su sitio oficial.

También necesitarás un editor de texto o un entorno de desarrollo integrado (IDE) para editar los archivos de configuración y código.

Creación del Dockerfile

El Dockerfile es un archivo de texto que contiene una serie de instrucciones para construir una imagen de Docker. Aquí tienes un ejemplo de un Dockerfile para una aplicación PHP con Apache:

# Usa una imagen base de PHP con Apache
FROM php:7.4-apache

# Copia el código de la aplicación al directorio raíz del servidor web
COPY . /var/www/html/

# Instala extensiones adicionales de PHP si es necesario
RUN docker-php-ext-install mysqli pdo pdo_mysql

# Configura Apache
RUN a2enmod rewrite

Guarda este archivo como Dockerfile en el directorio raíz de tu proyecto.

Creación del Archivo docker-compose.yml

Docker Compose es una herramienta que permite definir y ejecutar aplicaciones Docker de múltiples contenedores. Aquí tienes un ejemplo de un archivo docker-compose.yml para desplegar tu aplicación PHP con Apache:

version: '3.8'

services:
  web:
    build: .
    ports:
      - "80:80"
    volumes:
      - .:/var/www/html
    environment:
      - MYSQL_HOST=mysql
      - MYSQL_USER=root
      - MYSQL_PASSWORD=secret
      - MYSQL_DATABASE=mydatabase

  mysql:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: secret
      MYSQL_DATABASE: mydatabase

Este archivo define dos servicios: web (que utiliza la configuración del Dockerfile para construir la imagen) y mysql (que utiliza una imagen preconstruida de MySQL).

Despliegue de la Aplicación PHP

Para desplegar la aplicación, simplemente ejecuta el siguiente comando en el directorio donde se encuentran tus archivos Dockerfile y docker-compose.yml:

docker-compose up -d

Este comando descargará las imágenes necesarias, construirá la imagen personalizada de PHP y Apache, y lanzará los contenedores definidos en docker-compose.yml.

Verificación y Pruebas

Una vez que los contenedores estén en funcionamiento, abre tu navegador web y navega a http://localhost. Deberías ver la página de inicio de tu aplicación PHP.

Puedes verificar que el contenedor de MySQL está funcionando correctamente utilizando un cliente MySQL o herramientas como phpMyAdmin (que también se puede desplegar en un contenedor Docker).

Mejores Prácticas y Consejos

  • Mantén tu Dockerfile Limpio y Ordenado: Evita instalar dependencias innecesarias y limpia los archivos temporales después de la instalación.
  • Usa Variables de Entorno: Utiliza variables de entorno para configurar aspectos de tu aplicación que pueden cambiar entre entornos (desarrollo, pruebas, producción).
  • Optimiza las Capas del Dockerfile: Cada instrucción en un Dockerfile crea una nueva capa en la imagen. Agrupa las instrucciones que se ejecutan juntas para minimizar el número de capas.
  • Automatiza las Pruebas: Integra pruebas automatizadas en tu proceso de despliegue para asegurar que tu aplicación funciona correctamente después de cada cambio.

Conclusión

Desplegar aplicaciones PHP con Docker y Apache es una forma eficiente y escalable de gestionar tu entorno de desarrollo y producción. Siguiendo los pasos descritos en este artículo, podrás configurar y desplegar tu aplicación PHP de manera rápida y fiable. Experimenta con diferentes configuraciones y sigue explorando las capacidades de Docker para mejorar aún más tu flujo de trabajo.

Enlaces Relacionados