Este es mi primer Docker creado específicamente para facilitar el desarrollo dentro de Laravel. La imagen Docker incluye un servidor Apache, PHP, MySQL y todas las extensiones necesarias para ejecutar Laravel. Además, se instalan Composer y Git para gestionar dependencias y versiones.
Para utilizar esta imagen Docker, sigue los siguientes pasos:
!IMPORTANTE EL ARCHIVO Dockerfile va sin extension. (mv Dockerfile.txt Dockerfile) y darle Tambien verificar el tema de permisos y si no funciona cambiar el usuario y grupo sudo chown www-data:www-data /Users/diego/Documents/proyecto_x/public_html/index.php
Crea una carpeta para tu proyecto (por ejemplo, /Users/diego/Documents/proyecto_x/) y clona este repositorio en esa carpeta.
Abre una terminal y navega hasta la carpeta de tu proyecto. Ejecuta el siguiente comando para construir la imagen Docker:
docker build -t imagen_proyecto_x .
Una vez construida la imagen, ejecuta el contenedor con el siguiente comando:
docker run --name docker_proyecto_x -p 8080:80 -v /Users/diego/Documents/proyecto_x/public_html:/var/www/html imagen_proyecto_x
Esto mapeará el puerto 8080 de tu máquina local al puerto 80 del contenedor y sincronizará tu carpeta de trabajo local con la del servidor Apache dentro del contenedor.
Si recien comienzas tu proyecto, tendras que instalar laravel y para ello tendras que hacerlo dentro del docker, una vez que tengas instalado todo te recomiendo hacer una version en un repositorio github. Si en tu caso no necesitas instalar laravel aqui tendrias que clonar tu repositorio laravel para continuar trabajando.
docker exec -it docker_proyecto_x bash
docker_proyecto_x es el nombre de tu docker que se esta ejecutando
2. Ejecutar la instalacion de laravel usando composer que lo teniamos previamente cargado en el docker.
composer create-project --prefer-dist laravel/laravel proyecto_x
Remplazar proyecto_x por el nombre de tu proyecto. Esta instalacion en el servidor docker se vera reflejada en la carpeta de tu maquina local donde estas trabajando porque se sincronizan.
*si todo marcha bien tu proyecto estaria en : http://localhost:8080/proyecto_x/public/index.php
Este proceso hace que redireccionemos el trafico de localhost:8080 a la carpeta que /public de tu proyecto laravel para ingrese directamente sin necesidad de escribir toda la ruta completa.
nano /etc/apache2/sites-available/000-default.conf
Esto te abrira un editor nano para modificar el archivo de configuracion de apache2
DocumentRoot /var/www/html/proyecto_x/public Para guardar y salir : Ctrl+x - Enter - Y
service apache2 restart *TALVEZ TENGAS QUE REINCIAR TU DOCKER.
Después de ejecutar el contenedor, puedes empezar a trabajar en tu proyecto Laravel dentro de la carpeta /Users/diego/Documents/proyecto_x/public_html en tu máquina local. Los cambios que realices se reflejarán automáticamente en el servidor Docker, accesible en http://localhost:8080.