diff --git a/README.md b/README.md
index b2df426..842b2d3 100644
--- a/README.md
+++ b/README.md
@@ -67,6 +67,63 @@ sudo systemctl start document-server
---
+## 构建Docker镜像以便于通过Docker容器运行
+
+1.先通过maven打包[jodconverter-document-server](document-server/jodconverter-document-server)
+
+2.执行[build.sh](document-docker/build.sh)
+
+3.通过`docker load -i document-server-1.0.tar.gz`导入镜像,通过`docker ps | grep document-server`查看镜像版本
+
+4.编写`docker-compose.yml`,在其中指定镜像启动
+```yml
+version: '3.8'
+services:
+ document-server:
+ image: document-server:1.0
+ environment:
+ - CUSTOM_PORT=3000
+ - CUSTOM_HTTPS_PORT=3001
+ - DOCUMENT_SERVER_PORT=9004
+ - PORT_NUMBERS=2001,2002,2003
+ - MAX_TASKS_PER_PROCESS=100
+ ports:
+ # 用于通过http访问libreoffice
+ - 3000:3000
+ # 用于通过https访问libreoffice
+ - 3001:3001
+ # 文书转换服务端口,用于document-api远程调用document-server
+ - 9004:9004
+ volumes:
+ # libreoffice的配置保存路径
+ - ./config:/config
+ # document-server的配置,如不指定,则以默认为准。建议通过环境变量修改关键配置
+ - ./application.yml:/app/application.yml
+ restart: unless-stopped
+```
+
+`application.yml`默认内容如下:
+```yml
+server:
+ port: ${DOCUMENT_SERVER_PORT:9004}
+
+jodconverter:
+ local:
+ # 启动本地转换
+ enabled: true
+ # macOS下:program/soffice 的 program 所在目录 或 MacOS/soffice 的 MacOS 所在目录
+ # windows下:program/soffice.exe 的 program 所在目录
+ # linux下:program/soffice.bin 的 program 所在目录
+ # 如果不配置,则自动查找
+ #office-home: /Applications/LibreOffice.app/Contents
+ # 一个端口表示一个常驻进程,默认只有一个进程,端口为2002
+ port-numbers: ${PORT_NUMBERS:2002}
+ # 每个进程最多处理多个任务,默认为200
+ max-tasks-per-process: ${MAX_TASKS_PER_PROCESS:200}
+```
+
+---
+
## windows下才用[docto-document-server](document-server/docto-document-server)
通过`java -jar ./document-server-2.0.0.jar --spring.config.location=./application.yml`执行
\ No newline at end of file
diff --git a/document-api/pom.xml b/document-api/pom.xml
index 1bb0f54..fc02e92 100644
--- a/document-api/pom.xml
+++ b/document-api/pom.xml
@@ -1,59 +1,59 @@
- 4.0.0
-
- com.optima
- document
- 2.0.0
-
- document-api
- Document API
- 文档操作api
-
-
-
-
- org.projectlombok
- lombok
- 1.16.20
- provided
-
-
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+ 4.0.0
+
+ com.optima
+ document
+ 2.0.0
+
+ document-api
+ Document API
+ 文档操作api
+
+
+
+
+ org.projectlombok
+ lombok
+ 1.16.20
+ provided
+
+
-
-
-
-
- org.apache.maven.plugins
- maven-jar-plugin
- 3.3.0
-
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+ 3.3.0
+
-
-
- org.apache.maven.plugins
- maven-source-plugin
- 3.2.1
-
-
- attach-sources
- package
-
- jar-no-fork
-
-
-
-
+
+
+ org.apache.maven.plugins
+ maven-source-plugin
+ 3.2.1
+
+
+ attach-sources
+ package
+
+ jar-no-fork
+
+
+
+
-
-
- org.springframework.boot
- spring-boot-maven-plugin
-
- true
-
-
-
-
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+ true
+
+
+
+
diff --git a/document-docker/Dockerfile b/document-docker/Dockerfile
new file mode 100644
index 0000000..d7aa283
--- /dev/null
+++ b/document-docker/Dockerfile
@@ -0,0 +1,34 @@
+FROM lscr.io/linuxserver/libreoffice:latest
+
+RUN echo "https://mirrors.tencent.com/alpine/v$(cut -d'.' -f1,2 /etc/alpine-release)/main/" > /etc/apk/repositories
+RUN echo "https://mirrors.tencent.com/alpine/v$(cut -d'.' -f1,2 /etc/alpine-release)/community/" >> /etc/apk/repositories
+
+RUN apk update
+RUN apk add --no-cache openjdk17-jre
+RUN rm -rf /var/cache/apk/*
+
+WORKDIR /app
+RUN mkdir -p /app/logs
+
+COPY app/document-server-*.jar /app/application.jar
+COPY app/application.yml /app/application.yml
+
+COPY fonts /usr/share/fonts/truetype
+
+COPY entrypoint.sh /entrypoint.sh
+RUN chmod +x /entrypoint.sh
+
+#see https://hub.docker.com/r/linuxserver/libreoffice
+ENV PUID=1000
+ENV PGID=1000
+ENV TZ=Asia/Shanghai
+ENV LC_ALL=zh_CN.UTF-8
+ENV TITLE="Libre Office"
+ENV CUSTOM_PORT=3000
+ENV CUSTOM_HTTPS_PORT1=3001
+
+ENV DOCUMENT_SERVER_PORT=9004
+ENV PORT_NUMBERS=2002
+ENV MAX_TASKS_PER_PROCESS=200
+
+ENTRYPOINT ["/entrypoint.sh"]
\ No newline at end of file
diff --git a/document-docker/build.sh b/document-docker/build.sh
new file mode 100644
index 0000000..aec6b8a
--- /dev/null
+++ b/document-docker/build.sh
@@ -0,0 +1,34 @@
+#!/bin/bash
+# 设置Maven路径
+export PATH=$PATH:/Volumes/Working/Software/apache-maven-3.9.3/bin
+
+# 创建临时目录存放需要运行的jar
+mkdir -p app
+
+# 构建jar
+echo 构建jar
+mvn -f ../document-server/jodconverter-document-server/pom.xml clean package -Dmaven.test.skip=true
+echo jar构建完成
+
+# 复制所需文件
+cp ../document-server/jodconverter-document-server/target/document-server-*.jar app/
+cp ../document-server/jodconverter-document-server/target/application.yml app/
+
+# 执行构建
+
+#amd64
+echo 开始构建amd64镜像...
+docker buildx build --platform linux/amd64 -t document-server:1.0 ./
+rm -rf document-server-1.0.tar.gz
+docker save document-server:1.0 | gzip > document-server-1.0.tar.gz
+echo amd64镜像构建成功.
+
+#arm64
+echo 开始构建arm64镜像...
+docker buildx build --platform linux/arm64 -t document-server:1.0.arm64 ./
+rm -rf document-server-1.0.arm64.tar.gz
+docker save document-server:1.0.arm64 | gzip > document-server-1.0.arm64.tar.gz
+echo arm64镜像构建成功.
+
+# 清理临时文件
+rm -rf app
diff --git a/document-docker/entrypoint.sh b/document-docker/entrypoint.sh
new file mode 100644
index 0000000..2595e10
--- /dev/null
+++ b/document-docker/entrypoint.sh
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+# 确保目录存在
+mkdir -p /etc/services.d/java
+
+# 创建Java服务启动脚本
+cat > /etc/services.d/java/run <