Docker-compose
为了提供稳定性和可扩展性,我们建议在生产环境中使用容器编排。
查看 示例,了解如何在生产环境中运行协作服务器本地部署。
安装协作服务器本地部署需要有效的许可证密钥。
联系我们 获取试用许可证密钥。
出于评估和测试目的,您可以按照 快速入门 指南进行操作,我们提供易于使用的脚本,用于在本地机器上设置协作服务器本地部署所需的所有基础设施。
# 使用 Docker 容器设置应用程序
按照以下步骤使用 Docker 容器安装 CKEditor 协作服务器本地部署。
- 使用来自 CKEditor 生态系统客户仪表板 的说明登录到
协作服务器本地部署
Docker 注册表并拉取 Docker 镜像。 - 使用
docker
或docker-compose
容器化应用程序。 - 通过 云服务管理面板 创建具有
访问密钥
的环境
。使用此数据 创建令牌端点 并 运行测试。 - 运行测试以验证系统是否正常运行 - 请参阅 使用 Docker 运行测试 指南。
- 在 CKEditor 协作 Web 应用程序中配置服务器端点以与协作服务器本地部署应用程序通信 - 请参阅 设置端点 指南。
# 使用 docker-compose
容器化示例
按照以下步骤使用 docker-compose
容器化应用程序。
# 使用 MySQL 的示例
- 创建
docker-compose.yml
文件version: "2.2" services: mysql-database: image: mysql:8.0.34 platform: linux/amd64 environment: MYSQL_ROOT_PASSWORD: password volumes: - ./init.sql:/docker-entrypoint-initdb.d/init.sql:ro healthcheck: # Define healthcheck to be able to use the `service_healthy` condition. test: ["CMD-SHELL", "exit | mysql -h localhost -P 3306 -u root -p$$MYSQL_ROOT_PASSWORD" ] interval: 10s timeout: 30s retries: 5 redis: image: redis:6.2.7 ckeditor-cs: image: docker.cke-cs.com/cs:[version] depends_on: redis: condition: service_started mysql-database: condition: service_healthy # Make sure your database is ready for migration. ports: - "8000:8000" restart: always init: true environment: DATABASE_HOST: mysql-database DATABASE_USER: root DATABASE_PASSWORD: password REDIS_HOST: redis ENVIRONMENTS_MANAGEMENT_SECRET_KEY: secret LICENSE_KEY: your_license_key STORAGE_DRIVER: filesystem STORAGE_LOCATION: /var/cs/easyimage volumes: - ~/easyimage_files:/var/cs/easyimage
- 创建
init.sql
文件CREATE DATABASE `cs-on-premises` DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_bin;
- 运行
docker-compose up
# 使用 PostgreSQL 的示例
- 创建
docker-compose.yml
文件version: "2.2" services: postgres-database: image: postgres:12.12 environment: - POSTGRES_PASSWORD=password volumes: - ./init.sql:/docker-entrypoint-initdb.d/init.sql:ro healthcheck: # Define healthcheck to be able to use the `service_healthy` condition. test: pg_isready -U postgres interval: 10s timeout: 30s retries: 5 redis: image: redis:6.2.7 ckeditor-cs-postgres: image: docker.cke-cs.com/cs:[version] depends_on: redis: condition: service_started postgres-database: condition: service_healthy # Make sure your database is ready for migration. ports: - "8000:8000" restart: always init: true environment: DATABASE_DRIVER: postgres DATABASE_HOST: postgres-database DATABASE_PORT: 5432 DATABASE_USER: postgres DATABASE_PASSWORD: password DATABASE_DATABASE: cksource DATABASE_SCHEMA: cke-cs REDIS_HOST: redis ENVIRONMENTS_MANAGEMENT_SECRET_KEY: secret LICENSE_KEY: your_license_key STORAGE_DRIVER: filesystem STORAGE_LOCATION: /var/cs/easyimage volumes: - ~/easyimage_files:/var/cs/easyimage
- 创建
init.sql
文件CREATE DATABASE "cksource"; \connect "cksource"; CREATE SCHEMA "cke-cs";
- 运行
docker-compose up
# 使用协作工作器的示例
步骤与常规 CKEditor 协作服务器本地部署安装类似。
我们使用 docker-compose
作为示例配置,解释如何配置服务。在生产环境中,我们建议使用由容器编排系统(如 Docker Swarm、Kubernetes、ECS、GKE、AKS 或 OpenShift)管理的集群。
- 如果您已经拥有
docker-compose.yml
文件,则只需添加worker-cs
服务,并在ckeditor-cs
中将USE_BUILT_IN_COLLABORATION_WORKER
环境变量设置为false
。否则,使用以下内容创建该文件
version: "3.7"
services:
mysql-database:
image: mysql:8.0.34
platform: linux/amd64
environment:
MYSQL_ROOT_PASSWORD: password
volumes:
- ./init.sql:/docker-entrypoint-initdb.d/init.sql:ro
healthcheck: # Define healthcheck to be able to use the `service_healthy` condition.
test: ["CMD-SHELL", "exit | mysql -h localhost -P 3306 -u root -p$$MYSQL_ROOT_PASSWORD" ]
interval: 10s
timeout: 30s
retries: 5
redis:
image: redis:6.2.7
ckeditor-cs:
image: docker.cke-cs.com/cs:[version]
depends_on:
redis:
condition: service_started
mysql-database:
condition: service_healthy # Make sure your database is ready for migration.
ports:
- "8000:8000"
restart: always
init: true
environment:
DATABASE_DRIVER: mysql
DATABASE_HOST: mysql-database
DATABASE_USER: root
DATABASE_PASSWORD: password
REDIS_HOST: redis
ENVIRONMENTS_MANAGEMENT_SECRET_KEY: secret
LICENSE_KEY: your_license_key
STORAGE_DRIVER: filesystem
STORAGE_LOCATION: /var/cs/easyimage
USE_BUILT_IN_COLLABORATION_WORKER: "false"
volumes:
- ~/easyimage_files:/var/cs/easyimage
worker-cs:
image: docker.cke-cs.com/cs-worker:[version]
depends_on:
redis:
condition: service_started
mysql-database:
condition: service_healthy # Make sure your database is ready for migration.
restart: always
init: true
environment:
DATABASE_DRIVER: mysql
DATABASE_HOST: mysql-database
DATABASE_USER: root
DATABASE_PASSWORD: password
REDIS_HOST: redis
cs
和 cs-worker
镜像的版本应相同。
您还应将服务连接到相同的 Redis 和 SQL 数据库。
-
创建
init.sql
文件CREATE DATABASE `cs-on-premises` DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_bin;
-
运行
docker-compose up
# 注意
- 如果您使用文件系统进行图像存储,则应始终挂载 Docker 卷以在 Docker 容器被删除时保留上传的文件。您可以在此处找到有关 Easy Image 功能存储的更多信息 此处。
- 使用环境变量配置应用程序。请参阅 环境变量 指南。
- 出于安全原因,您应使用唯一且难以猜测的字符串覆盖
ENVIRONMENTS_MANAGEMENT_SECRET_KEY
变量。 - 如果没有正确的
LICENSE_KEY
,应用程序将无法启动。 - 如果您大量使用协作功能(如文档存储、导入和导出或连接优化器),我们建议使用 协作工作器 来提高可靠性。
# 使用 docker
容器化示例
启动 Docker 容器
docker run --init -p 8000:8000 -v /path/to/your/dir:/var/cs/easyimage -e DATABASE_HOST=[your_mysql_host] -e DATABASE_USER=[your_mysql_user] -e DATABASE_PASSWORD=[your_mysql_password] -e REDIS_HOST=[your_redis_host] -e LICENSE_KEY=[your_license_key] -e STORAGE_DRIVER=filesystem -e STORAGE_LOCATION=/var/cs/easyimage docker.cke-cs.com/cs:[version]
注意
- 如果您使用文件系统进行图像存储,则应始终挂载 docker 卷
-v /path/to/your/dir:/var/cs/easyimage
以在 Docker 容器被删除时保留上传的文件。您可以在此处找到有关 Easy Image 功能存储的更多信息 此处。 - 使用环境变量配置应用程序。请参阅 配置指南。示例
- 如果 SQL 数据库和 Redis 托管在
192.168.118.27
上,则应通过DATABASE_HOST
和REDIS_HOST
变量传递地址docker run --init -p 8000:8000 -v ~/easyimage_files:/var/cs/easyimage -e DATABASE_HOST=192.168.118.27 -e REDIS_HOST=192.168.118.27 -e DATABASE_USER=root -e DATABASE_PASSWORD=root_password -e LICENSE_KEY=[your_license_key] -e STORAGE_DRIVER=filesystem -e STORAGE_LOCATION=/var/cs/easyimage docker.cke-cs.com/cs:[version]
- 如果您要更改应用程序提供服务的端口为
5000
,请覆盖APPLICATION_HTTP_PORT
变量并更改公开的端口docker run --init -p 5000:5000 -v ~/easyimage_files:/var/cs/easyimage -e APPLICATION_HTTP_PORT=5000 -e DATABASE_HOST=192.168.118.27 -e REDIS_HOST=192.168.118.27 -e DATABASE_USER=root -e DATABASE_PASSWORD=root_password -e LICENSE_KEY=[your_license_key] -e STORAGE_DRIVER=filesystem -e STORAGE_LOCATION=/var/cs/easyimage docker.cke-cs.com/cs:[version]
- 如果 SQL 数据库和 Redis 托管在
- 出于安全原因,您应使用唯一且难以猜测的字符串覆盖
ENVIRONMENTS_MANAGEMENT_SECRET_KEY
变量。 - 如果没有正确的
LICENSE_KEY
,应用程序将无法启动。