Usando docker-compose personalizado
Paso 1: Crear archivos necesarios
Crea una carpeta para tu proyecto y dentro crea un archivo docker-compose.yml:
version: '3.8'
services:
app:
build:
context: .
dockerfile: Dockerfile
container_name: laravel_app
restart: unless-stopped
working_dir: /var/www/html
volumes:
- ./:/var/www/html
networks:
- laravel
nginx:
image: nginx:alpine
container_name: nginx
restart: unless-stopped
ports:
- "8000:80"
volumes:
- ./:/var/www/html
- ./nginx.conf:/etc/nginx/conf.d/default.conf
networks:
- laravel
db:
image: mysql:8.0
container_name: mysql
restart: unless-stopped
environment:
MYSQL_DATABASE: laravel
MYSQL_ROOT_PASSWORD: password
volumes:
- dbdata:/var/lib/mysql
networks:
- laravel
volumes:
dbdata:
networks:
laravel:
driver: bridgePaso 2: Crear archivo Dockerfile
FROM php:8.2-fpm
# Instalar dependencias del sistema
RUN apt-get update && apt-get install -y \
git \
curl \
libpng-dev \
libonig-dev \
libxml2-dev \
zip \
unzip
# Limpiar cache
RUN apt-get clean && rm -rf /var/lib/apt/lists/*
# Instalar extensiones de PHP
RUN docker-php-ext-install pdo_mysql mbstring exif pcntl bcmath gd
# Obtener Composer
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
# Crear usuario para la aplicación
RUN groupadd -g 1000 www
RUN useradd -u 1000 -ms /bin/bash -g www www
# Copiar contenido existente del directorio
COPY . /var/www/html
# Copiar permisos de directorio existente
COPY --chown=www:www . /var/www/html
# Cambiar al usuario
USER www
# Exponer el puerto 9000 y ejecutar php-fpm server
EXPOSE 9000
CMD ["php-fpm"]Paso 3: Crear archivo nginx.conf
server {
listen 80;
index index.php index.html;
server_name localhost;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
root /var/www/html/public;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass app:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}Paso 4: Instalar Laravel
# Crear proyecto Laravel
docker run --rm -v $(pwd):/app composer create-project laravel/laravel .
# Dar permisos
sudo chown -R $USER:$USER .
# Levantar los contenedores
docker-compose up -d
# Ejecutar migraciones
docker-compose exec app php artisan migrate🎯 Comandos útiles
# Ver contenedores en ejecución
docker ps
# Detener contenedores
docker-compose down
# Ver logs
docker-compose logs
# Ejecutar comandos en el contenedor de la app
docker-compose exec app php artisan make:model Producto✅ Verificar instalación
Una vez que todo esté corriendo, visita:
http://localhost (si usaste Sail)
http://localhost:8000 (si usaste el método 2)
Deberías ver la página de bienvenida de Laravel.
💡 Consejos para principiantes
Empieza con Laravel Sail - Es la opción más sencilla
No te preocupes por los errores - Son normales al principio
Guarda tus archivos de configuración - Te servirán para futuros proyectos
Practica los comandos básicos de Docker
Comentarios
Publicar un comentario