✨ 新增功能: - 新增 Dockerfile.git 支持从Git仓库构建 - 新增 docker-compose.git.yml 配置文件 - 新增 build-from-git.sh 一键部署脚本 - 更新 docker-entrypoint.sh 适配新构建方式 - 更新 README.md 添加Git构建说明 🔧 配置更新: - 支持从 https://git.1080p.hk/chenpei/jmalcloud 自动构建 - 优化构建流程和容器启动脚本 - 添加完整的Docker健康检查 📖 文档更新: - 添加Git仓库构建部署文档 - 提供一键部署解决方案
71 lines
1.7 KiB
Docker
71 lines
1.7 KiB
Docker
# 基于OpenJDK 21和FFmpeg的基础镜像
|
|
FROM ghcr.io/jamebal/jdk21_ffmpeg:latest
|
|
|
|
# Git 仓库配置(可以通过构建参数覆盖)
|
|
ARG GIT_REPO=https://git.1080p.hk/chenpei/jmalcloud.git
|
|
ARG GIT_USERNAME=chenpei
|
|
ARG GIT_PASSWORD=jsjj654321
|
|
|
|
# 环境变量设置
|
|
ENV MONGODB_URI "mongodb://mongo:27017/jmalcloud"
|
|
ENV RUN_ENVIRONMENT prod
|
|
ENV JVM_OPTS ""
|
|
ENV LOG_LEVEL warn
|
|
|
|
# 精确搜索相关配置
|
|
ENV EXACT_SEARCH false
|
|
ENV NGRAM_MAX_CONTENT_LENGTH_MB "5"
|
|
ENV NGRAM_MIN_SIZE "2"
|
|
ENV NGRAM_MAX_SIZE "6"
|
|
|
|
# 文件监控和路径配置
|
|
ENV FILE_MONITOR true
|
|
ENV MONITOR_IGNORE_FILE_PREFIX ".DS_Store,._"
|
|
ENV FILE_ROOT_DIR /jmalcloud/files
|
|
ENV TESS4J_DATA_PATH /jmalcloud/tess4j/datapath
|
|
|
|
# 多平台支持
|
|
ARG TARGETPLATFORM
|
|
ENV PLATFORM=$TARGETPLATFORM
|
|
ENV DOCKER_DEFAULT_PLATFORM=linux/amd64,linux/arm64
|
|
|
|
# 安装必需软件
|
|
RUN apt-get update && \
|
|
apt-get install -y \
|
|
git \
|
|
gosu \
|
|
maven \
|
|
curl && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
# 设置工作目录
|
|
WORKDIR /build
|
|
|
|
# 禁用SSL验证并克隆代码
|
|
RUN git config --global http.sslverify false && \
|
|
git clone https://${GIT_USERNAME}:${GIT_PASSWORD}@git.1080p.hk/chenpei/jmalcloud.git . && \
|
|
rm -rf .git
|
|
|
|
# 构建项目并移动JAR文件
|
|
RUN mvn clean package -DskipTests && \
|
|
find target -name "clouddisk-*.jar" -exec mv {} /usr/local/clouddisk.jar \; && \
|
|
rm -rf /build
|
|
|
|
# 复制启动脚本
|
|
COPY docker-entrypoint.sh /docker-entrypoint.sh
|
|
RUN chmod +x /docker-entrypoint.sh
|
|
|
|
# 创建卷
|
|
VOLUME /jmalcloud/
|
|
|
|
# 暴露端口
|
|
EXPOSE 8088
|
|
EXPOSE 8089
|
|
|
|
# 健康检查
|
|
HEALTHCHECK --interval=30s --timeout=3s --start-period=60s --retries=3 \
|
|
CMD curl -f http://localhost:8088/public/health > /dev/null || exit 1
|
|
|
|
# 启动脚本
|
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|