Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

496
Visualizações
Docker-compose (y django): no se pueden obtener variables de entorno en los servicios

Estoy tratando de escribir una pequeña solución de implementación de docker (-compose) para una pequeña aplicación Django.

Actualmente, el archivo django-compose, denominado docker-compose.dev.yaml se parece a esto:

 version: "3" services: backend: build: context: ./backend dockerfile: Dockerfile command: python manage.py runserver 0.0.0.0:8000 ports: - 8000:8000 env_file: - dev.env

El archivo dev.env se ve así:

 DEBUG=1 SECRET_KEY=We9ZyuSKsP9Mgvsrt74gExF8baWbGL # not important that this leaks DJANGO_ALLOWED_HOSTS=localhost

Sin embargo, cuando Django intenta iniciarse, obtengo lo siguiente:

#11 0.634 PERMITIDOS_HOSTS = os.environ.get("DJANGO_ALLOWED_HOSTS").split(" ")

#11 0.634 AttributeError: el objeto 'NoneType' no tiene el atributo 'split'

Básicamente, la variable de entorno devuelve None , lo que significa que las variables no llegan al contenedor.

Intenté, de acuerdo con los documentos , hacer esto:

 # ... environment: - DEBUG - SECRET_KEY - DJANGO_ALLOWED_HOSTS

Sin suerte.

¿Algunas ideas? El repositorio detrás del código es público, te invito a probar.

Mi entorno de prueba actual es el escritorio Docker en Windows 10.

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Entonces, lo descubrí.

Resulta que esta línea en el Dockerfile para el backend:

 RUN python manage.py migrate

era el problema. No me di cuenta de que se ejecutó en tiempo de compilación, no en tiempo de ejecución, por lo que las variables de entorno no estaban disponibles.

¡Me mudé a un script llamado en tiempo de ejecución y no todo funciona!

backend/Dockerfile :

 # ... # Make files executable RUN chmod +x start.dev.sh

backend/start.dev.sh :

 #!/bin/bash python manage.py migrate python manage.py runserver 0.0.0.0:8000

Y ./docker-compose.dev.yaml :

 # ... command: ./start.dev.sh # ...
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda