Docker版Kiwi TCMS CentOS单服务器多环境部署及PostgreSQL切换咨询
单服务器多Kiwi TCMS实例部署可行性
完全可以在单台CentOS服务器上并行部署多套隔离的Kiwi TCMS站点,满足开发、生产环境的独立使用需求。部署时只要做好资源隔离避免冲突即可,核心注意点如下:
- 为开发、生产环境分别创建独立的本地部署目录,所有配置文件、持久化数据分目录存放,禁止跨环境共用同一套文件夹
- 为每个环境下的所有服务(Kiwi应用、配套数据库、可选缓存组件)分配不重复的宿主机映射端口:比如生产环境的Kiwi应用映射宿主机8000端口,开发环境的Kiwi应用映射宿主机8001端口;两套环境的数据库服务也分别绑定独立的宿主机数据库端口,避免端口占用冲突
- 每个环境配置独立的数据库实例、独立的访问账号与密码,禁止跨环境复用数据库连接,防止开发环境的测试操作误改生产数据
- 已通过
docker pull拉取的kiwitcms/kiwi本地镜像可以被所有部署的实例复用,不需要为不同环境重复拉取镜像占用冗余存储空间 - 启动服务时可通过
docker-compose -p <自定义项目名> up -d为每个环境的编排项目指定独立的项目标识,避免Docker Compose把不同环境的容器、数据卷识别为同一套资源
替换默认MariaDB为PostgreSQL的操作说明
你梳理的操作流程完全符合官方部署逻辑,实际执行时需要注意几个新手容易遗漏的细节:
- 官方配套编排文件中的MariaDB是Kiwi的强制依赖组件,替换为PostgreSQL时,需要把原配置中MariaDB服务的定义整体替换为PostgreSQL官方镜像的服务段,同时同步修改Kiwi应用侧的数据库连接环境变量,确保应用侧的数据库地址、端口、账号、密码参数和PostgreSQL服务的配置完全对齐,否则会出现应用无法连接数据库的问题
- 修改配置时需要自定义独立的数据库名称、访问账号、密码,不要使用编排文件自带的默认弱密码,同时为PostgreSQL配置对应的本地持久化存储卷,避免容器重建后存储的业务数据丢失
- 把调整完成的配置文件存入对应环境的独立部署目录后,在该目录下执行
docker-compose up -d即可拉起整套服务 - 不要为了节省服务器资源让开发、生产环境共用同一个PostgreSQL数据库容器,两套环境的数据库必须独立部署,才能实现真正的环境隔离
- 服务启动完成后需要预留1-2分钟的初始化等待时间,等数据库完成初始化流程、Kiwi应用自动执行完数据库表结构迁移后,再访问站点验证功能,避免因为启动流程未完成误判部署失败
内容的提问来源于stack exchange,提问作者Karthik
相关产品推荐
相关产品推荐

