1
fynx 2017-04-22 19:34:26 +08:00
venv + django/flask + supervisor + uwsgi + nginx. 未上 docker
|
2
ohhe 2017-04-22 20:00:21 +08:00
docker 里面肯定没必要 env 了。多此一举。
option 1 : django + env + supervisor +gunicorn +nginx option 2 : django + supervisor +gunicorn +nginx 个人认为生产环境只跑一个服务的话用不用 env 无所谓 option 3 : docker(django + gunicorn) + nginx |
4
Tunar 2017-04-22 21:12:35 +08:00 via Android
docker tornado
|
5
cloverstd 2017-04-22 22:50:11 +08:00 2
使用 docker
对于 wsgi 之类的,在 docker 里面跑一个 uwsgi/gunicorn ,然后开多个 worker 对于 tornado, 在 docker 里可以用 multiprocess 起多个 tornado 进程,但是公用一个端口; 或者使用 supervisor 起多个 tornado 进程,运行在不同的端口 docker 里面把各种依赖全装了,基础镜像选择 alpine |
6
ryd994 2017-04-23 01:22:53 +08:00 via Android
只要是能简单横向扩展,自身无状态的服务,都能用 docker 直接扩
|
8
siteshen 2017-04-24 01:25:56 +08:00
@cloverstd 实测基础镜像选 alpine 并没那么好,不少的包安装都有问题,某些包(比如 airflow 依赖的 psutil )连使用 python:slim 都需要安装 gcc 。
|
9
cloverstd 2017-04-24 08:50:39 +08:00 via iPhone
@siteshen 依赖都是可以装的,只有部分,例如 cx_oracle 依赖的 glibc 不全,其余的都可以装上
选用 alpine skiing 的最大好处是可以减小镜像体积,方便 pull 和 push ,可以快速扩容 |
10
yanzixuan 2017-04-24 09:12:38 +08:00
@cloverstd cx_oracle 也是可以搞定的。构建的时候,复制 oracle 对应 lib 到 docker 目标文件夹,然后再装 cx_oracle. 一些设置在写 dockerfile 一并搞完。
|