onlyoffice持久化

一、安装 Docker Compose

# 下载 Docker Compose 二进制文件(根据系统架构选择)
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# 赋予执行权限
sudo chmod +x /usr/local/bin/docker-compose

# 验证安装
docker-compose --version

二、创建 OnlyOffice 项目目录并配置

1. 创建项目目录

mkdir -p onlyoffice/data/{certs,logs,data,lib,db,fonts,config}
cd onlyoffice

2. 编写 docker-compose.yml 文件

networks:
  1panel-network:
    external: true

services:
  onlyoffice:
    container_name: ${CONTAINER_NAME:-onlyoffice}
    environment:
      - JWT_ENABLED=true
      - JWT_SECRET=${JWT_SECRET:-your_secure_jwt_secret}
      - WOPI_ENABLED=true
      - DOCUMENT_SERVER_PORT_HTTP=${PANEL_APP_PORT_HTTP:-40156}
      - FORCE_SSL=true
      - SERVER_URL=https://your-domain.com  # 替换为你的域名
    image: onlyoffice/documentserver:latest
    networks:
      - 1panel-network
    ports:
      - "${PANEL_APP_PORT_HTTP:-40156}:80"
    restart: always
    volumes:
      - ./data/certs:/var/www/onlyoffice/Data/certs
      - ./data/logs:/var/log/onlyoffice
      - ./data/data:/var/www/onlyoffice/Data
      - ./data/lib:/var/lib/onlyoffice
      - ./data/db:/var/lib/postgresql
      - ./data/fonts:/var/www/onlyoffice/documentserver/core-fonts
      - ./data/config:/etc/onlyoffice/documentserver  # 关键:挂载配置目录
    env_file:
      - .env

3. 创建环境变量文件 .env

echo "CONTAINER_NAME=onlyoffice
JWT_SECRET=your_secure_jwt_secret  # 建议使用强密码
PANEL_APP_PORT_HTTP=40156
CPUS=1.0
MEMORY_LIMIT=2g" > .env

三、启动容器并生成默认配置

1. 启动 OnlyOffice 容器

docker-compose up -d
# 等待约30秒让容器初始化

2. 确认容器运行状态

docker ps | grep onlyoffice
# 应显示容器状态为 "Up"

3. 进入容器查看默认配置文件

docker exec -it onlyoffice bash
ls /etc/onlyoffice/documentserver
# 应显示 main.json、document-server.json 等文件
exit

4. 复制容器内配置到宿主机(实现持久化)

docker cp onlyoffice:/etc/onlyoffice/documentserver/. ./data/config/

5. 检查宿主机配置目录

ls ./data/config
# 应显示 main.json、document-server.json 等文件

四、按需求修改配置

五、重启容器使配置生效

docker-compose down
docker-compose up -d

# 查看日志确认配置加载
docker logs -f onlyoffice
# 应看到 "Generating WOPI private key...Done" 等启动日志,无 JSON 错误

六、验证配置持久化与功能

1. 验证宿主机修改同步到容器

# 在宿主机修改配置文件
echo "test-persist" > ./data/config/test.txt

# 查看容器内是否同步
docker exec -it onlyoffice cat /etc/onlyoffice/documentserver/test.txt
# 应显示 "test-persist"

七、常见问题解决方案

  1. JSON 解析错误(json: error: undefined)
    • 检查 main.json 格式,确保无多余逗号、引号闭合正确
    • 使用 jsonlint 工具校验
  2. 配置文件未同步
    • 确认 docker-compose.yml 中挂载路径正确:- ./data/config:/etc/onlyoffice/documentserver
    • 确保容器启动时先生成默认配置,再复制到宿主机
  3. 权限问题
    • 赋予宿主机目录全权限:chmod -R 777 ./data
    • 若使用 SELinux,添加挂载标记:- ./data/config:/etc/onlyoffice/documentserver:z
  4. 容器启动失败
    • 检查端口是否被占用:lsof -i :40156
    • 移除旧容器:docker rm -f onlyoffice 后重新启动
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
颜文字
Emoji
小恐龙
花花
上一篇