基础镜像、jdk变更

This commit is contained in:
2025-11-13 17:19:31 +08:00
parent d3cba427cb
commit 04ccffd32d
3 changed files with 45 additions and 29 deletions

View File

@@ -1,33 +1,41 @@
FROM lscr.io/linuxserver/libreoffice:latest
# 基础镜像Eclipse Temurin JRE 8多架构支持Ubuntu Noble
FROM eclipse-temurin:8-jre-noble
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
# 设置环境变量
ENV TZ=Asia/Shanghai
ENV LANG=zh_CN.UTF-8
ENV LANGUAGE=zh_CN.UTF-8
ENV LC_ALL=zh_CN.UTF-8
RUN apk update
RUN apk add --no-cache openjdk17-jre
RUN rm -rf /var/cache/apk/*
# 安装 LibreOffice + 字体支持
RUN rm -f /etc/apt/sources.list.d/* && \
echo "deb https://mirrors.ustc.edu.cn/ubuntu/ noble main restricted universe multiverse" > /etc/apt/sources.list && \
echo "deb https://mirrors.ustc.edu.cn/ubuntu/ noble-security main restricted universe multiverse" >> /etc/apt/sources.list && \
apt update && \
apt install -y --no-install-recommends \
libreoffice \
libreoffice-java-common \
fonts-dejavu \
fonts-noto-cjk \
fontconfig \
locales \
tzdata \
ca-certificates && \
locale-gen zh_CN.UTF-8 && \
rm -rf /var/lib/apt/lists/*
# 设置工作目录
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
#设置环境变量默认值,参考 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 DISABLE_IPV6=true
ENV CUSTOM_PORT=3000
ENV CUSTOM_HTTPS_PORT=3001
# 环境变量配置
ENV DOCUMENT_SERVER_PORT=9004
ENV PORT_NUMBERS=2002
ENV MAX_TASKS_PER_PROCESS=200
@@ -36,6 +44,8 @@ ENV GRAMER_SUFFIX="}"
ENV GRAMER_CUSTOMIZE_LIST="%"
ENV GRAMER_CUSTOMIZE_LIST_STRING_DELIMITING=""
# 暴露端口
EXPOSE 9004
ENTRYPOINT ["/entrypoint.sh"]
# 启动入口
ENTRYPOINT ["/entrypoint.sh"]

View File

@@ -1,10 +1,19 @@
#!/bin/sh
set -e
# 确保目录存在
mkdir -p /etc/services.d/java
# -----------------------------
# 可选:启动 LibreOffice headless 监听服务端口2002用于文档转换
# -----------------------------
# 你可以根据需要开启或关闭
libreoffice --headless --accept="socket,host=0.0.0.0,port=${PORT_NUMBERS};urp;" --nologo --nofirststartwizard &
echo "LibreOffice headless started on port ${PORT_NUMBERS}"
# 创建Java服务启动脚本
cat > /etc/services.d/java/run <<EOF
# -----------------------------
# 启动 Java 应用
# -----------------------------
echo "Starting Java application..."
rm -rf /app/start.sh
cat > /app/start.sh <<EOF
#!/bin/sh
exec java -jar /app/application.jar \
--server.port=${DOCUMENT_SERVER_PORT} \
@@ -17,8 +26,5 @@ exec java -jar /app/application.jar \
--document.gramer.customize-list-string-delimiting="${GRAMER_CUSTOMIZE_LIST_STRING_DELIMITING}"
EOF
# 设置可执行权限
chmod +x /etc/services.d/java/run
# 启动s6-overlay它会自动管理所有服务
exec /init
chmod 755 /app/start.sh
sh /app/start.sh