创建一个web2py docker镜像并通过浏览器

时间:2015-05-25 07:11:53

标签: docker web2py

我试图在ubuntu上构建web2py的docker镜像。鉴于docker文件

    #######################
    # Web2py installation #
    #######################

    # Set the base image for this installation
    FROM ubuntu

    # File Author/ Mainteainer
    MAINTAINER sandilya28

    #Update the repository sources list
    RUN apt-get update --assume-yes

    ########### BEGIN INSTALLATION #############

    ## Install Git first
    RUN apt-get install git-core --assume-yes && \ 
    cd /home/ && \ 
    git clone --recursive https://github.com/web2py/web2py.git

    ## Install Python

   RUN sudo apt-get install python --assume-yes

   ########## END INSTALLATION ################

   # Expose the default port
   EXPOSE 8000

   WORKDIR /home/

使用上面的Dockerfile构建图像

docker build -t sandilya28/web2py .

然后使用上面的图像构建容器

docker run --name my_web2py -p 8000:8000 -it sandilya28/web2py bash

主机的IP地址是

192.168.59.103

可以使用boot2docker ip

找到

创建图像后,我使用

启动web2py服务器
python web2py/web2py.py

我尝试从192.168.59.103:8000访问web2py GUI,但显示该页面不可用。

如何从浏览器访问web2py的GUI。

2 个答案:

答案 0 :(得分:1)

创建运行开发Web服务器的docker将为您提供一个非常慢的解决方案,因为Web服务器是单线程的,并且还将提供所有静态文件。它意味着发展。

由于您不使用https,它还会禁用web2py管理界面:如果您从localhost访问它,则只能通过http访问。

话虽如此,您可以通过以下方式启动web2py来启动并运行您的解决方案:

python web2py.py --nogui -a admin -i 0.0.0.0

所有选项都很重要,因为web2py需要在不提出任何问题的情况下启动服务器,并且需要绑定到外部netwerk接口地址。

当您想使用生产就绪泊坞窗来运行web2py时,您需要在docker中添加一些其他组件; nginx,uwsgi和supervisord会让它更快,并为您提供启用https的选项。注意:对于较大的项目,您可能需要对MySql或PostgreSQL进行python绑定,并为数据库提供单独的docker。

可以在此处找到没有精美数据库支持的生产示例:

https://github.com/acidjunk/docker-web2py

可以从docker hub安装:

docker pulll acidjunk/web2py

请务必阅读说明,因为您需要一个web2py应用;将安装在容器中。如果您只是想启动一个web2py服务器来摆弄示例或欢迎应用程序,您可以使用:

docker pull thehipbot/web2py

以:

开头
docker run -p 443:443 -p 80:80 thehipbot/web2py

然后启动浏览器

https://192.168.59.103

答案 1 :(得分:0)

看看我在github上创建的示例应用程序:

主要功能:

  
      
  • 精简的基础w2p应用版本
  •   
  • Dev模式友好(管理控制台)
  •   
  • 由Gunicorn提供服务(已针对Docker容器进行了优化)
  •   
  • 裸露的URL,即http://localhost:8080,没有多余的URL路径
  •   
  • Dockerfile + k8s
  •   

希望这会有所帮助。