Cuando se habla de disponer en contenedores una aplicación, se hace referencia al proceso de adaptación de una aplicación y sus componentes para poder ejecutarla en entornos ligeros conocidos como contenedores. Estos entornos están aislados, son desechables y se pueden utilizar para desarrollar, probar e implementar aplicaciones en la producción.
En esta guía, usaremos Docker Compose con el propósito de disponer en contenedores una aplicación de Laravel para el desarrollo. Al finalizar, dispondrá de una aplicación Laravel de demostración funcional en tres contenedores de servicios separados:
app
con PHP7.4-FPM;db
con MySQL 5.7;nginx
en el que se utilice el servicio app
para analizar el código PHP antes de proporcionar la aplicación Laravel al usuario final.Para permitir un proceso de desarrollo simplificado y facilitar la depuración de aplicaciones, mantendremos sincronizados los archivos de la aplicación usando volúmenes compartidos. También veremos cómo usar comandos docker-compose exec
para la ejecución de Composer y Artisan en el contenedor app
.
Para comenzar, obtendremos la aplicación Laravel de demostración de su repositorio de Github. Nos interesa la ramificación tutorial-01
, que contiene la aplicación básica de Laravel que creamos en la primera guía de esta serie.
Para obtener el código de la aplicación que es compatible con este tutorial, descargue la versión tutorial-1.0.1
en su directorio de inicio con lo siguiente:
cd ~
curl -L https://github.com/do-community/travellist-laravel-demo/archive/tutorial-1.0.1.zip -o travellist.zip
Necesitaremos el comando unzip
para desempaquetar el código de la aplicación. En caso de que no haya instalado el paquete antes, hágalo ahora con lo siguiente:
sudo apt update
sudo apt install unzip
Luego, descomprima el contenido de la aplicación y cambie el nombre del directorio desempaquetado para facilitar el acceso:
unzip travellist.zip
mv travellist-laravel-demo-tutorial-1.0.1 travellist-demo
Diríjase al directorio travellist-demo
:
cd travellist-demo
En el siguiente paso, crearemos un archivo de configuración .env
para configurar la aplicación.
.env
de la aplicaciónLos archivos de configuración de Laravel se encuentran en un directorio llamado config
, dentro del directorio root de la aplicación. Además, un archivo .env
se utiliza para establecer una configuración dependiente del entorno, como las credenciales y cualquier información que pueda variar entre las implementaciones. Este archivo no está incluido en el control de revisiones.
Advertencia: En el archivo de configuración del entorno se encuentra información confidencial sobre su servidor, incluidas las credenciales de bases de datos y las claves de seguridad. Por ese motivo, nunca debe compartir públicamente este archivo.
Los valores incluidos en el archivo .env
tendrán prioridad sobre los valores establecidos en los archivos de configuración normales que se encuentran en el directorio config
. Para cada instalación en un nuevo entorno se requiere un archivo de entorno personalizado a fin de definir elementos como las configuraciones de conexión de bases de datos, las opciones de depuración y las URL de aplicación, entre otros elementos que pueden variar dependiendo del entorno en el que se ejecute la aplicación.
Ahora, crearemos un nuevo archivo .env
para personalizar las opciones de configuración para el entorno de desarrollo que configuraremos. En Laravel se incluye un archivo .env
de ejemplo que podemos copiar para crear el nuestro:
cp .env.example .env
Abra este archivo utilzando nano
o el editor de texto que prefiera:
nano .env
En el archivo .env
actual de la aplicación de demostración travellist
se incluyen las configuraciones para usar una base de datos local de MySQL, con 127.0.0.1
como host de base de datos. Necesitamos actualizar la variable DB_HOST
para que esta apunte al servicio de base de datos que crearemos en nuestro entorno de Docker. En esta guía, usaremos el nombre db
para el servicio de nuestra base de datos. Sustituya el valor de la lista de DB_HOST
por el nombre del servicio de la base de datos:
.env
APP_NAME=Travellist
APP_ENV=dev
APP_KEY=
APP_DEBUG=true
APP_URL=http://localhost:8000
LOG_CHANNEL=stack
DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=3306
DB_DATABASE=travellist
DB_USERNAME=travellist_user
DB_PASSWORD=password
...
Si lo desea, puede cambiar también el nombre, el nombre de usuario y la contraseña de la base de datos. Estas variables aprovecharán en un paso posterior en el que prepararemos el archivo docker-compose.yml
para configurar nuestros servicios.
Guarde el archivo cuando finalice la edición. Si utiliza nano
, puede hacerlo presionando Ctrl+x
, luego Y
y Enter
para confirmar.
#laravel #y