
logilab/cubicweb-base该项目帮助将基于CubicWeb的应用构建为Docker镜像,使用Debian基础镜像,包含多种版本的CubicWeb和Python,适用于生产环境部署。
可用镜像标签:
latest1.0该镜像包含构建生产环境CubicWeb应用镜像所需的必要组件,设计为应用Dockerfile的父镜像使用。具体包含:
/usr/bin/python和/usr/bin/pip符号链接到选定的Python版本(2.7、3.5或3.7)/etc/uwsgi/uwsgi.ini/pyramid.inipyramid.ini、处理/etc/cubicweb.d/instance/data中的静态数据文件及数据库自动升级入口点还支持运行各类命令(如db-create创建数据库)或任意命令。
/src目录;若从其他位置或PyPI安装cube,需设置CUBE环境变量/etc/cubicweb.d/instance,可通过CW_INSTANCE环境变量修改(通常无需修改)根据集成级别不同,有多种使用方式,选择建议:
假设在cubicweb-blog的源代码目录中:
dockerfileFROM logilab/cubicweb-base USER root COPY . /src RUN pip install -e /src USER cubicweb RUN docker-cubicweb-helper create-instance
若从PyPI安装或源代码不在/src目录,需设置CUBE环境变量:
dockerfileFROM logilab/cubicweb-base USER root RUN pip install cubicweb-blog USER cubicweb ENV CUBE=blog RUN docker-cubicweb-helper create-instance
环境变量控制all-in-one.conf中的设置,关键变量包括:
CW_BASE_URL:实例访问URL(默认http://localhost:8080),需包含协议,如[***]CW_DB_DRIVER(默认postgres)、CW_DB_NAME、CW_DB_USER、CW_DB_PASSWORDCW_LOGIN(默认admin)、CW_PASSWORD(默认admin)用于验证镜像可用性:
bashdocker run --rm -it -e CW_DB_NAME=db.sqlite myimage sh -c "cubicweb-ctl db-create -a instance && uwsgi --ini /etc/uwsgi/uwsgi.ini"
访问http://localhost:8080即可打开实例。
需先运行db-create命令创建初始数据库:
bash# 在本地PostgreSQL集群创建名为"myapp"的数据库 docker run --rm -it -e CW_DB_NAME=myapp -e CW_DB_USER=me -v /var/run/postgresql:/var/run/postgresql myimage db-create # 在远程PostgreSQL服务器创建名为"myapp"的数据库 docker run --rm -it -e CW_DB_NAME=myapp -e CW_DB_USER=me -e CW_DB_PASSWORD=secret -e CW_DB_HOST=dbserver myimage db-create # 在本地/tmp/db.sqlite文件中创建数据库 docker run --rm -it -e CW_DB_NAME=/tmp/db.sqlite -v /tmp/db.sqlite:/tmp/db.sqlite myimage db-create
在本地8080端口启动uwsgi服务器:
bash# 前台运行 docker run --rm -it -p 8080:8080 myapp # 后台运行 docker run -d --restart=always --name myapp myapp
需启动scheduler以运行CubicWeb循环任务:
bash# 前台运行 docker run --rm -it myapp cubicweb-ctl scheduler instance # 后台运行 docker run -d --restart=always --name myapp-scheduler myapp cubicweb-ctl scheduler instance
.dockerignore文件避免复制无用文件,示例:
.* *.egg-info **/__pycache__ Dockerfile Jenkinsfile Makefile tox.ini test debian




manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务