2014-12-27 2 views
1

У меня есть служба uwsgi, работающая в контейнере Docker, которую я хочу использовать для обслуживания приложения django. Когда я запускаю службу uwsgi локально, все работает нормально, но из контейнера докера я получаю сообщения *** no app loaded. going in full dynamic mode *** и --- no python application found, check your startup logs for errors ---, а приложение django показывает ошибку внутреннего сервера. Вот мой файл uwsgi.ini. Внутри контейнера Docker я начинаю uwsgi с supervisord как [program:uwsgi] command = /usr/local/bin/uwsgi --ini /home/docker/code/uwsgi.ini:docker

[uwsgi] 
# this config will be loaded if nothing specific is specified 
# load base config from below 
ini = :base 

[dev] 
ini = :base 
# socket (uwsgi) is not the same as http, nor http-socket 
socket = :8001 

[local] 
ini = :base 
http = :8000 
# set the virtual env to use 
home=/Users/Robbie/.virtualenvs/my_virtualenv 

[docker] 
init = :base 
logto = /var/logs/uwsgi.log 
http = :80 
master = true 
processes = 6 


[base] 
# chdir to the folder of this config file, plus app/website 
chdir = %ddjango_project_root_dir/ 
module=project_app.wsgi:application 
# Set settings module. 
env = DJANGO_SETTINGS_MODULE=project_app.settings 
chmod-socket=664 

Насколько я могу сказать, все мои пути должны быть правильно ... упрощенное дерево для моих файлов в контейнере Docker, как

/home/docker/code 
| 
|____ uwsgi.ini 
|____ supervisor.conf 
| 
└── django_project_root_dir 
    │   
    └── project_app 
     ├── __init__.py 
     ├── settings.py 
     └── wsgi.py 

EDIT

Когда я бегу docker exec DOCKER_ID uwsgi --ini /home/docker/code/uwsgi.ini:local я получаю ответ docker-exec: failed to exec: exec: "pyuwsgi": executable file not found in $PATH

ответ

2

Оказывается, я довольно тупой.

[docker] раздел uwsgi.ini должен иметь ini = :base, а не init = :base. Раздел базы не анализировался, поэтому модуль wsgi никогда не устанавливался.

Всегда проверяйте свою работу, друзья.

Смежные вопросы