jmalcloud/Dockerfile
chenpei cb39c208b6 🐳 修复原始Dockerfile与docker-entrypoint.sh的匹配问题
🔧 修复内容:
- 统一JAR文件路径为 clouddisk.jar
- 移除未使用的 VERSION 环境变量
- 保持构建时 VERSION 参数用于定位源文件

✅ 现在两种部署方式完全兼容:
- Dockerfile: 传统构建方式
- Dockerfile.git: Git仓库构建方式
2025-08-24 11:23:19 +08:00

51 lines
1.2 KiB
Docker

FROM ghcr.io/jamebal/jdk21_ffmpeg:latest
ARG VERSION
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
ADD target/clouddisk-${VERSION}.jar /usr/local/clouddisk.jar
VOLUME /jmalcloud/
# 设置支持的平台
ARG TARGETPLATFORM
RUN echo "Building for platform: $TARGETPLATFORM"
LABEL org.label-schema.build.multi-platform=true
ENV PLATFORM=$TARGETPLATFORM
# 将 Linux/arm64/v8 架构设置为默认平台
# 如果需要,可以根据需要更改此设置
ENV DOCKER_DEFAULT_PLATFORM=linux/amd64,linux/arm64
COPY docker-entrypoint.sh /docker-entrypoint.sh
RUN apt-get update && \
apt-get install -y gosu && \
chmod +x /docker-entrypoint.sh && \
rm -rf /var/lib/apt/lists/*
EXPOSE 8088
# FTP Server
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"]