jmalcloud/Dockerfile.git
chenpei 0d9ae59e19 🐳 添加Git仓库Docker构建支持
✨ 新增功能:
- 新增 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仓库构建部署文档
- 提供一键部署解决方案
2025-08-24 11:21:48 +08:00

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"]