
psychomantys/plone本Docker镜像基于Plone 5.0.8版本构建,集成了RelStorage存储后端及部分常用插件,旨在提供一个开箱即用的Plone内容管理系统(CMS)部署方案。Plone是一款功能强大的开源企业级CMS,支持内容创建、管理、发布等全流程;RelStorage扩展允许Plone将数据存储至关系型数据库(如PostgreSQL、MySQL),替代默认的ZODB,提升数据可管理性与性能;集成的插件则进一步增强了系统功能,减少手动配置成本。
buildout.cfg查看),覆盖内容增强、界面优化、安全加固等场景,减少额外插件安装步骤。通过docker run命令直接启动容器,需指定数据库连接参数(RelStorage依赖)及管理员账户信息:
bashdocker run -d \ --name plone5 \ -p 8080:8080 \ -e RELSTORAGE_DB_TYPE=postgresql \ -e RELSTORAGE_DB_HOST=db-host \ -e RELSTORAGE_DB_PORT=5432 \ -e RELSTORAGE_DB_USER=ploneuser \ -e RELSTORAGE_DB_PASSWORD=plonepass \ -e RELSTORAGE_DB_NAME=plonedb \ -e PLONE_ADMIN_USER=admin \ -e PLONE_ADMIN_PASSWORD=secret \ plone:5.0.8-relstorage-plugins
推荐配合数据库容器使用docker-compose,以下为示例docker-compose.yml:
yamlversion: '3' services: plone: image: plone:5.0.8-relstorage-plugins ports: - "8080:8080" environment: - RELSTORAGE_DB_TYPE=postgresql - RELSTORAGE_DB_HOST=db - RELSTORAGE_DB_PORT=5432 - RELSTORAGE_DB_USER=plone - RELSTORAGE_DB_PASSWORD=plonepassword - RELSTORAGE_DB_NAME=plonedb - PLONE_ADMIN_USER=admin - PLONE_ADMIN_PASSWORD=adminpass depends_on: - db volumes: - plone_data:/data # 持久化Plone配置与非数据库数据 db: image: postgres:9.6 environment: - POSTGRES_USER=plone - POSTGRES_PASSWORD=plonepassword - POSTGRES_DB=plonedb volumes: - postgres_data:/var/lib/postgresql/data # 持久化数据库数据 volumes: plone_data: postgres_data:
启动命令:docker-compose up -d
| 环境变量名 | 描述 | 默认值 | 可选值 |
|---|---|---|---|
RELSTORAGE_DB_TYPE | 数据库类型 | postgresql | postgresql, mysql, oracle |
RELSTORAGE_DB_HOST | 数据库主机地址 | localhost | 数据库服务IP或域名 |
RELSTORAGE_DB_PORT | 数据库端口 | 5432 | 对应数据库默认端口(如MySQL为3306) |
RELSTORAGE_DB_USER | 数据库访问用户名 | - | 需与数据库创建的用户一致 |
RELSTORAGE_DB_PASSWORD | 数据库访问密码 | - | 需与数据库用户密码一致 |
RELSTORAGE_DB_NAME | 数据库名称 | plone | 自定义数据库名 |
PLONE_ADMIN_USER | Plone管理员用户名 | admin | 自定义管理员账户 |
PLONE_ADMIN_PASSWORD | Plone管理员密码 | - | 必须设置,建议强密码 |
PLONE_PORT | 容器内Plone服务端口 | 8080 | 容器内未被占用的端口 |
/var/lib/postgresql/data)实现持久化,避免容器重启数据丢失。/data目录(包含配置文件、日志、临时文件等),确保自定义配置与非数据库数据(如插件配置)持久化。镜像内置插件可通过容器内/plone/buildout.cfg查看或修改,如需添加/移除插件:
docker exec -it <container_id> /bin/bash进入容器;buildout.cfg的eggs或zcml部分,添加插件包名;bin/buildout重新构建配置;bin/instance restart。docker logs <container_id>查看进度。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务