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

San*_*uri 6 web2py docker

我正在尝试在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/
Run Code Online (Sandbox Code Playgroud)

通过使用上面的Dockerfile构建映像

docker build -t sandilya28/web2py .
Run Code Online (Sandbox Code Playgroud)

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

docker run --name my_web2py -p 8000:8000 -it sandilya28/web2py bash
Run Code Online (Sandbox Code Playgroud)

主机的IP地址是

192.168.59.103
Run Code Online (Sandbox Code Playgroud)

可以通过使用找到 boot2docker ip

创建映像后,我正在使用启动web2py服务器

python web2py/web2py.py
Run Code Online (Sandbox Code Playgroud)

我正在尝试访问web2py GUI,192.168.59.103:8000但它显示页面不可用.

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

aci*_*unk 1

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

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

话虽这么说,您可以通过启动 web2py 来启动并运行您的解决方案:

python web2py.py --nogui -a admin -i 0.0.0.0
Run Code Online (Sandbox Code Playgroud)

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

当你想使用生产就绪的 docker 来运行 web2py 时,你需要在 docker 中添加一些额外的组件;nginx、uwsgi 和supervisord 会使其速度更快,并为您提供启用https 的选项。注意:对于更大的项目,您可能需要 MySql 或 PostgreSQL 的 python 绑定以及带有数据库的单独 docker。

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

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

它可以通过 docker hub 安装:

docker pulll acidjunk/web2py
Run Code Online (Sandbox Code Playgroud)

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

docker pull thehipbot/web2py
Run Code Online (Sandbox Code Playgroud)

开始:

docker run -p 443:443 -p 80:80 thehipbot/web2py
Run Code Online (Sandbox Code Playgroud)

然后启动浏览器

https://192.168.59.103