MrK*_*tts 3 python django docker
我目前正在supervisor为我的 Django 应用程序提供服务,然后我将其expose移植8002到我的 Docker 文件中。这一切正常...
[program:app]
command=gunicorn app.core.wsgi:application -c /var/projects/app/server/gunicorn.conf
user=webapp
backlog = 2048
chdir = "/var/projects/apps"
bind = "0.0.0.0:8002"
pidfile = "/var/run/webapp/gunicorn.pid"
daemon = False
debug = False
Run Code Online (Sandbox Code Playgroud)
在 Docker 中
# Expose listen ports
EXPOSE 8002
Run Code Online (Sandbox Code Playgroud)
但是,有人告诉我最好使用 socket在端口,但是我不确定如何在我的 Docker 文件中“暴露”一个套接字。这是我有多远:
新的主管配置....
backlog = 2048
chdir = "/var/projects/apps"
bind = "unix:/var/run/webapp/gunicorn.sock"
pidfile = "/var/run/webapp/gunicorn.pid"
daemon = False
debug = False
Run Code Online (Sandbox Code Playgroud)
码头工人
# Expose listen ports
EXPOSE ???? (may be unix:/var/run/webapp/gunicorn.sock fail_timeout=0;???)
Run Code Online (Sandbox Code Playgroud)
我如何暴露套接字?
EXPOSE 仅适用于 UDP 和 TCP 套接字。
如果您想让 Unix 域套接字在容器外可用,则需要在容器内挂载一个主机目录,然后将套接字放置在那里。例如,如果您要:
docker run -v /srv/webapp:/var/run/webapp ...
Run Code Online (Sandbox Code Playgroud)
然后/var/run/webapp/gunicorn.sock在您的容器中将/srv/webapp/gunicorn.sock位于您的主机上。
当然,这假设您在主机上或另一个可以访问 的容器中运行某些东西,该容器/srv/webapp能够使用该套接字并使用它来提供服务。
| 归档时间: |
|
| 查看次数: |
2369 次 |
| 最近记录: |