Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

493
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!