为了使之运行在Docker容器内部,我们还需要做一些操作。在我们的实例Apache服务器中,example_app.wsgi文件包含了连接Python代码和web服务器的指令。该文件应当包含下列内容:
import site
site.addsitedir('/opt/example_app/')
from app import app as application
最终,我们需要一个Dockerfile来构建容器并运行容器。在我们的实例中,它看起来是这样的:
FROM python_webapp
MAINTAINER amouat
ADD example_app.wsgi /var/www/flaskapp/flaskapp.wsgi
CMD service apache2 start && tail -F /var/log/apache2/error.log
ADD那行为启动WSGI注入了一些代码。CMD那行在启动容器,启动apache web服务器时获取任何可能的错误信息,并将其发送至stdout。
如果你下列操作:
$ docker build -t example_app .
$ docker run -p 5000:5000 -v $(pwd)/example_app:/opt/example_app/ -i -t example_app
你应当会得到这样的回馈:通过浏览器打开地址localhost:5000,你会看到你的网站正在运行。如果你实在VM或者vagrant中运行,记得打开5000端口。