Inicio > Desarrollo Web > Tutoriales de Laravel > Guía fácil para dockerizar tu aplicación Laravel en PHP

Guía fácil para dockerizar tu aplicación Laravel en PHP

Diego Cortés
Diego Cortés
January 21, 2025
Guía fácil para dockerizar tu aplicación Laravel en PHP

Dockerizar una aplicación Laravel en PHP puede parecer un desafío, pero con los pasos adecuados, el proceso se vuelve sencillo y accesible. En esta guía, te mostraré cómo hacerlo de manera efectiva, asegurando que tu aplicación esté lista para ser ejecutada en cualquier entorno sin complicaciones.

¿Qué es Docker y por qué usarlo?

Docker es una plataforma de código abierto que permite construir, probar y desplegar aplicaciones en contenedores. Estos contenedores son entornos ligeros y aislados que contienen todo lo necesario para ejecutar tu aplicación, incluyendo el código, bibliotecas, configuraciones y dependencias. Utilizar Docker facilita la creación de entornos de desarrollo consistentes y simplifica el proceso de despliegue.

Requisitos previos

Antes de comenzar, asegúrate de tener instalado en tu máquina:

  • Docker: La herramienta principal que utilizarás para crear y gestionar contenedores.
  • Composer: Un gestor de dependencias para PHP, que necesitarás para manejar las bibliotecas de tu proyecto Laravel.

Pasos para dockerizar tu aplicación Laravel

1. Crear un archivo Dockerfile

El primer paso es crear un archivo llamado Dockerfile en la raíz de tu proyecto Laravel. Este archivo especifica cómo se construirá la imagen Docker para tu aplicación. Aquí tienes un ejemplo de un Dockerfile básico:

# Usar la imagen base de PHP con Apache
FROM php:8.0-apache

# Instalar las extensiones de PHP necesarias
RUN docker-php-ext-install pdo pdo_mysql

# Configurar el directorio de trabajo
WORKDIR /var/www/html

# Copiar el código de la aplicación al contenedor
COPY . .

# Instalar Composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

# Instalar las dependencias del proyecto
RUN composer install

# Exponer el puerto para el servidor web
EXPOSE 80

2. Crear un archivo docker-compose.yml

El siguiente paso es crear un archivo llamado docker-compose.yml en la raíz de tu proyecto. Este archivo permite definir los servicios que tu aplicación necesitará, como la base de datos. Un ejemplo sencillo se ve así:

version: '3.8'

services:
  app:
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - "8080:80"
    volumes:
      - .:/var/www/html
    networks:
      - app-network

  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: laravel
    networks:
      - app-network

networks:
  app-network:
    driver: bridge

3. Construir y correr los contenedores

Ahora que tienes los archivos Dockerfile y docker-compose.yml, es momento de construir y ejecutar los contenedores. Abre una terminal y navega hasta la raíz de tu proyecto, luego ejecuta el siguiente comando:

docker-compose up -d

Este comando descargará las imágenes necesarias, creará los contenedores y los iniciará en segundo plano. La opción -d significa "detached" (desprendido), permitiendo que los contenedores se ejecuten sin bloquear la terminal.

4. Acceder a tu aplicación

Una vez que tus contenedores estén en funcionamiento, puedes acceder a tu aplicación Laravel ingresando http://localhost:8080 en tu navegador. Si todo está correctamente configurado, deberías ver la página de bienvenida de Laravel.

5. Administrar tus contenedores

Para detener los contenedores, puedes ejecutar:

docker-compose down

Este comando detiene y elimina los contenedores, pero conserva los datos de tu base de datos debido a la configuración de Docker.

Conclusión

Dockerizar tu aplicación Laravel en PHP es un proceso sencillo que trae numerosos beneficios para el desarrollo y despliegue. Con esta guía, podrás configurar tu entorno en poco tiempo y sin complicaciones.

Si te interesa seguir aprendiendo sobre más prácticas útiles en el mundo de la tecnología y desarrollo web, te invito a leer más noticias de este estilo en mi blog. ¡Tu próxima aventura en el mundo del desarrollo te espera!

Diego Cortés
Diego Cortés
Full Stack Developer, SEO Specialist with Expertise in Laravel & Vue.js and 3D Generalist

Categorías

Page loaded in 23.54 ms