es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

El archivo docker-compose no detecta el archivo .env con la opción -f.

Estoy utilizando un archivo makefile para construir mi proyecto y esta es la jerarquía de archivos:

➜  Inception git:(main) ✗ ls -l *
-rw-r--r-- 1 dcavalei dcavalei  258 Jan  6 16:34 Makefile

<p>srcs:
total 28
drwxr-xr-x 5 dcavalei dcavalei 4096 Jan  6 11:45 .
drwxr-xr-x 7 dcavalei dcavalei 4096 Jan  6 17:21 ..
-rw-r--r-- 1 dcavalei dcavalei  631 Jan  6 17:02 docker-compose.yml
-rw-r--r-- 1 dcavalei dcavalei  123 Jan  6 15:49 .env
drwxr-xr-x 3 dcavalei dcavalei 4096 Jan  6 11:23 mariadb
drwxr-xr-x 2 dcavalei dcavalei 4096 Jan  6 11:45 nginx
drwxr-xr-x 2 dcavalei dcavalei 4096 Jan  5 15:21 wordpress

Básicamente, cuando escribo docker-compose up dentro del directorio srcs, funciona como se esperaba, pero si intento ejecutar:

  • docker-compose -f ./srcs/docker-compose.yml up cuando estoy en la raíz de mi proyecto, no lee mi archivo .env.

Recibo la siguiente advertencia:

➜  Inception git:(main) ✗ docker-compose -f ./srcs/docker-compose.yml up
WARNING: The MYSQL_ROOT_PASSWORD variable is not set. Defaulting to a blank string.
WARNING: The MYSQL_USER variable is not set. Defaulting to a blank string.
WARNING: The MYSQL_PASSWORD variable is not set. Defaulting to a blank string.
WARNING: The MYSQL_WP_NAME variable is not set. Defaulting to a blank string.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para leer correctamente el archivo .env al ejecutar el comando docker-compose en la raíz del proyecto, puedes especificar la ruta del archivo utilizando la bandera -f:

    docker-compose -f ./srcs/docker-compose.yml --env-file ./srcs/.env up
    

    Esto asegurará que el archivo .env se lea correctamente y que las variables de entorno se configuren como se espera. Además, es posible que desees considerar agregar la bandera --project-directory para especificar el directorio base del proyecto:

    docker-compose --project-directory ./srcs -f ./srcs/docker-compose.yml --env-file ./srcs/.env up
    

    Esto garantizará que docker-compose resuelva correctamente las rutas relativas dentro del proyecto.

Comments are closed.