54 lines
2.4 KiB
Docker
54 lines
2.4 KiB
Docker
# $ docker build -t ujcms:x.x.x .
|
||
|
||
FROM bellsoft/liberica-openjre-debian:24-cds AS builder
|
||
|
||
WORKDIR /builder
|
||
ARG JAR_FILE=target/*.jar
|
||
COPY ${JAR_FILE} ujcms.jar
|
||
RUN java -Djarmode=tools -jar ujcms.jar extract --layers --destination extracted
|
||
COPY src/main/resources/application-docker.yaml ./extracted/application/config/application.yaml
|
||
|
||
|
||
FROM bellsoft/liberica-openjre-debian:24-cds
|
||
|
||
# 安装 procps(debian 需安装,ubuntu 不需要)。否则没有 ps 命令,jodconverter 无法启动
|
||
# 安装 libreoffice。如开启 doc 导入及文库功能,则需要安装
|
||
# 安装 default-mysql-client(ubuntu 可安装 mysql-client)。如需使用数据库备份功能,则需要安装
|
||
#RUN apt-get update && apt-get --no-install-recommends install -y procps libreoffice default-mysql-client && rm -rf /var/lib/apt/lists/*
|
||
|
||
# 也可安装国内镜像源后,再安装 libreoffice default-mysql-client
|
||
# bullseye 及之前为 /etc/apt/sources.list,bookworm 及之后为 /etc/apt/sources.list.d/debian.sources
|
||
# 阿里云镜像源:mirrors.aliyun.com/debian
|
||
# 腾讯云镜像源:mirrors.cloud.tencent.com/debian
|
||
#RUN sed -e 's|deb.debian.org/debian|mirrors.cloud.tencent.com/debian|g' \
|
||
# -i /etc/apt/sources.list.d/debian.sources \
|
||
# && apt-get update && apt-get --no-install-recommends install -y procps libreoffice default-mysql-client && rm -rf /var/lib/apt/lists/*
|
||
|
||
# 文库功能 docx 转 pdf 时如缺少字体,可复制相应字体到镜像中。常用字体通常可在 C:\Windows\Fonts 中找到
|
||
#COPY docker/fonts/* /usr/share/fonts/zh-cn/
|
||
|
||
# 使用非 root 用户运行容器,可能因权限问题,无法访问挂载目录
|
||
#USER 1000:1000
|
||
WORKDIR /ujcms
|
||
|
||
COPY --from=builder /builder/extracted/dependencies/ ./
|
||
COPY --from=builder /builder/extracted/spring-boot-loader/ ./
|
||
COPY --from=builder /builder/extracted/snapshot-dependencies/ ./
|
||
COPY --from=builder /builder/extracted/application/ ./
|
||
|
||
COPY src/main/resources/application-docker.yaml ./config/application.yaml
|
||
# 将初始文件拷贝至 /usr/src/ujcms,再由初始化脚本复制到 /ujcms/static,避免文件内容被挂载目录覆盖
|
||
COPY src/main/webapp/ /usr/src/ujcms/
|
||
|
||
RUN rm -f /usr/src/ujcms/WEB-INF/*.xml; \
|
||
# 写入时间戳,用于判断 cp 文件是否需要更新
|
||
date +%s > /usr/src/ujcms/cp/.timestamp;
|
||
|
||
VOLUME ["/ujcms/static"]
|
||
EXPOSE 8080
|
||
|
||
COPY --chmod=755 docker/docker-entrypoint.sh /usr/local/bin/
|
||
|
||
ENTRYPOINT ["docker-entrypoint.sh"]
|
||
CMD ["java", "-jar", "ujcms.jar"]
|