配置 uwsgi.ini 文件,以便 DJango 项目在 Docker 容器中工作

问题描述 投票:0回答:2

我正在尝试设置

uwsgi.ini
文件,以便它可以与 docker 容器一起使用。

在Dockerfile中,我暴露了8888端口。下面是与这个问题相关的Dockerfile部分:

Docker文件

EXPOSE 8888

ENV DOCKER_CONTAINER=1

#CMD ["uwsgi", "--ini", "/code/uwsgi.ini"]  <<< right now, this is commented out

CMD ["/bin/bash"]

上面,运行

CMD
文件的
uwsgi.ini
被注释掉了,因为对我来说,它最初不起作用。我将 CMD 更改为“/bin/bash”,以便我可以登录到容器的操作系统级别。这样做之后,我然后运行下面的代码:

uwsgi --http 923b235d270e:8888 --chdir=/code/backendworkproj --module=backendworkproj.wsgi:application --env DJANGO_SETTINGS_MODULE=backendworkproj.settings --master --pidfile=/tmp/backendworkproj-master.pid --socket=127.0.0.1:49152 --processes=5 --uid=1000 --gid=2000 --harakiri=20 --max-requests=5000 --vacuum  

一旦完成,我就可以在机器上访问端口 8888 并查看网站。

简而言之,一切正常。

我现在面临的问题是将上面的命令转换为可以在

uwgsi.ini
文件中运行的命令

如果你看上面命令的一部分,我用过:

--http 923b235d270e:8888

指定一个端口。 923b235d270econtainer 相关联(因为 127.0.0.1 不起作用)

如何在

env
文件中正确表示这个(以及
uwsgi
变量,如 DJANGO_SETTINGS_MODULE ),以便服务器正常工作?下面是我的 .ini 文件。

TIA

uwsgi.ini

[uwsgi] 
--http 923b235d270e:8888 
chdir=/code/backendworkproj 
module=backendworkproj.wsgi:application 
--env DJANGO_SETTINGS_MODULE=backendworkproj.settings 
master=True 
pidfile=/tmp/backendworkproj-master.pid 
socket=127.0.0.1:49152 
processes=5 
uid=1000 
gid=2000 
harakiri=20 
max-requests=5000 
vacuum=True
python django docker uwsgi
2个回答
1
投票

没关系。此配置有效。

[uwsgi]
http-socket = :8888
chdir = /code/backendworkproj
module = backendworkproj.wsgi:application
env = DJANGO_SETTINGS_MODULE=backendworkproj.settings
master = True
pidfile = /tmp/backendworkproj-master.pid
socket = 127.0.0.1:49152
processes = 5
uid = 1000
gid = 2000
harakiri = 20
max-requests = 5000
vacuum = True

0
投票

如果你使用 Django 和 uwsgi,不要忘记设置 lazy-apps 否则你会得到数据库错误。

https://stackoverflow.com/a/29309598

© www.soinside.com 2019 - 2024. All rights reserved.