我试图在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。
答案 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
然后启动浏览器
答案 1 :(得分:0)
看看我在github上创建的示例应用程序:
主要功能:
- 精简的基础w2p应用版本
- Dev模式友好(管理控制台)
- 由Gunicorn提供服务(已针对Docker容器进行了优化)
- 裸露的URL,即http://localhost:8080,没有多余的URL路径
- Dockerfile + k8s
希望这会有所帮助。