首页 > 开发 > 云计算 > 正文

docker 怎样同时支持静态内容和动态内容

2017-09-12 09:52:41  来源: 网友分享

http://stackoverflow.com/q/25909985/707580
两边都问问,看看哪边用docker的人多

我有一个简单的 python/flask app,部署在container上时是这样的:

/var/www/app/
  appl/
    static/
      ...
    app.py
  wsgi.py

在使用 docker 之前,我都是用 nginx 直接指向静态文件:

location /static {
    alias  /var/www/www.domain.com/appl/static;
}

location / {
    uwsgi_pass unix:///tmp/uwsgi/www.domain.com.sock;
    include uwsgi_params;
}

但是现在静态文件在 container 内部,nginx 看不到。

我能想到 2 种解决方案:

  1. 按和以前一模一样的配置在 docker 里面卡一个 nginx,然后让 host nginx 和 container nginx 通过 8000 端口直连,host nginx 是个纯 proxy

  2. (host)/var/www/www.domain.com/static 挂到 (container)/var/www/static,然后在启动脚本里把静态内容复制过去

更 docker 的方法是什么?

解决方案

更docker的方法就是在里面种一个nginx。

docker的目标是现在写的程序10年后还能运行,换句话说就是全套环境打包。