un ejemplo real usando docker para laravel
Thu Aug 14 2025 13:10:31 GMT+0000 (Coordinated Universal Time)
Saved by @jrg_300i #php #laravel #docker #compose
1.-Preparar el entorno base: Instala Docker y Docker Compose en tu sistema para poder construir y manejar contenedores. 2.-Crear estructura de proyecto Laravel: Puedes crear el proyecto Laravel localmente o usar un contenedor PHP con Composer para generarlo. Si ya tienes un proyecto Laravel, colócalo en una carpeta donde trabajes con Docker. 3.-Crear archivo Dockerfile para PHP + Apache2 + extensiones relevantes: Usarás la imagen base oficial de PHP 8.4 con Apache. Instalarás las extensiones necesarias para Laravel y PostgreSQL, por ejemplo: pdo_pgsql, pgsql, zip, curl, xml, mbstring. Copiarás el código fuente Laravel al contenedor. Ejemplo básico de Dockerfile: FROM php:8.4-apache RUN apt-get update && apt-get install -y \ libpq-dev \ libzip-dev \ zip \ unzip \ && docker-php-ext-install pdo_pgsql pgsql zip bcmath COPY . /var/www/html/ RUN chown -R www-data:www-data /var/www/html \ && a2enmod rewrite 4.-Configurar Docker Compose para los servicios: Define servicios para PHP-Apache y PostgreSQL. Vincula volúmenes para código y datos persistentes. Configura variables de entorno para Laravel (DB connection). Ejemplo básico de docker-compose.yml: version: '3.8' services: app: build: context: . dockerfile: Dockerfile ports: - "8080:80" volumes: - ./:/var/www/html depends_on: - db db: image: postgres:15 environment: POSTGRES_DB: laravel POSTGRES_USER: laraveluser POSTGRES_PASSWORD: laravelpass volumes: - pgdata:/var/lib/postgresql/data volumes: pgdata: 5.-Configurar archivo .env de Laravel: Ajusta las variables para conectarse a la base de datos PostgreSQL dentro del contenedor: DB_CONNECTION=pgsql DB_HOST=db DB_PORT=5432 DB_DATABASE=laravel DB_USERNAME=laraveluser DB_PASSWORD=laravelpass 6.-Construir e iniciar los contenedores Docker: En la terminal, ejecutar: docker-compose up --build Esto facilita manejar dependencias y la base de datos dentro del entorno Docker. Resumen y conceptos clave: Dockerfile: define cómo construir la imagen personalizada PHP+Apache con las extensiones necesarias. Docker Compose: orquesta múltiples contenedores (app y db), redes y volúmenes. Volúmenes: aseguran que tu código y los datos de la base de datos persistan fuera de los contenedores. Laravel .env: configura la conexión a la base de datos PostgreSQL dentro de la red Docker. Comandos Artisan dentro del contenedor mantienen el entorno controlado y consistente. Este proceso modular te permite entender cómo Docker puede contenerizar un proyecto web completo con backend, webserver y base de datos separados pero comunicados, facilitando el desarrollo y pruebas locales sin alterar tu sistema nativo.
Comments