从Docker容器暴露WSGI应用程序

我有一台运行在Google Compute Engine上的VM托pipeApache / WSGI提供的Flask应用程序。 这个应用程序必须通过互联网www.my_application.com

在Docker容器中通过WSGI公开应用程序的最佳方式是什么?

  • 是否有一个特定的docker run命令使用?
  • 是否需要修改my_application.conf
  • 还有什么要知道/要做的?

下面是my_application.conf

 <VirtualHost *:80> ServerName www.my_application.com WSGIDaemonProcess my_application user=www-data group=www-data threads=5 WSGIScriptAlias / /var/www/my_application/application.wsgi ErrorLog /var/log/my_application.log <Directory /var/www/my_application> WSGIProcessGroup my_application WSGIApplicationGroup %{GLOBAL} Order deny,allow Allow from all </Directory> </VirtualHost> 

这可能是也可能不是与你有关,但我做了一个公共(和开源)的Docker图像与所有的花里胡哨,你可以用它来build立一个Python Flask的Web应用程序。

它有用于运行应用程序的uWSGI,Nginx为HTTP和Supervisord提供服务来控制它们,因此您不必学习如何安装和configuration所有这些来构build您的Python Flask Web应用程序。

Google Compute Engine可以运行Docker: https : //cloud.google.com/compute/docs/containers

看起来像Nginx的uWSGI是部署Python Web应用程序的更强大(并且性能卓越)的方式之一。 这里是基准: http : //nichol.as/benchmark-of-python-web-servers 。

甚至有一些模板项目可以用来引导你自己。 此外,您不必克隆整个项目或其他东西,您可以将其用作基本映像。

Docker Hub: https : //hub.docker.com/r/tiangolo/uwsgi-nginx-flask/

GitHub: https : //github.com/tiangolo/uwsgi-nginx-flask-docker