配置 uwsgi.ini 文件以便 DJango 项目在 Docker 容器中运行
Configuring a uwsgi.ini file so that a DJango project will work within a Docker container
我正在尝试设置 uwsgi.ini
文件,以便它可以与 docker 容器一起使用。
在Dockerfile中,我暴露了8888端口。下面是与这个问题相关的Dockerfile部分:
Dockerfile
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”,这样我就可以登录到容器的OS级别了。这样做之后,我然后 运行 下面的代码:
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
指定一个端口。 923b235d270e 与 容器相关联 (因为 127.0.0.1 不起作用)
如何在 uwsgi
文件中正确表示此(以及 env
变量,如 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
没关系。此配置有效。
[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
我正在尝试设置 uwsgi.ini
文件,以便它可以与 docker 容器一起使用。
在Dockerfile中,我暴露了8888端口。下面是与这个问题相关的Dockerfile部分:
Dockerfile
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”,这样我就可以登录到容器的OS级别了。这样做之后,我然后 运行 下面的代码:
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
指定一个端口。 923b235d270e 与 容器相关联 (因为 127.0.0.1 不起作用)
如何在 uwsgi
文件中正确表示此(以及 env
变量,如 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
没关系。此配置有效。
[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