# 使用官方Ubuntu基础镜像 FROM ubuntu:22.04 # 设置构建参数 ARG TZ=Asia/Shanghai ARG APP_USER=openlist ARG APP_HOME=/app # 设置环境变量 ENV TZ=${TZ} \ APP_USER=${APP_USER} \ APP_HOME=${APP_HOME} \ VIRTUAL_ENV=${APP_HOME}/venv \ PATH="${APP_HOME}/venv/bin:${JAVA_HOME}/bin:${PATH}" \ LANG=C.UTF-8 \ LC_ALL=C.UTF-8 # 安装依赖并配置环境 RUN set -eux; \ # 设置时区 ln -snf /usr/share/zoneinfo/$TZ /etc/localtime; \ echo $TZ > /etc/timezone; \ \ # 更新包索引并安装基本依赖 apt-get update; \ apt-get install -y --no-install-recommends \ wget \ tar \ python3 \ python3-pip \ python3-venv; \ \ # 清理APT缓存以减小镜像体积 apt-get clean; \ rm -rf /var/lib/apt/lists/*; \ \ # 更新CA证书 update-ca-certificates; \ \ # 创建应用用户和目录 useradd -r -u 1000 -m -d $APP_HOME -s /bin/bash $APP_USER; \ chown -R $APP_USER:$APP_USER $APP_HOME; \ \ # 创建Python虚拟环境并安装依赖 python3 -m venv $VIRTUAL_ENV; \ pip install --no-cache-dir --upgrade pip setuptools wheel; \ pip install --no-cache-dir huggingface_hub # 设置工作目录和用户 WORKDIR $APP_HOME USER $APP_USER # 下载并解压 OpenList RUN wget -q https://github.com/OpenListTeam/OpenList/releases/download/beta/openlist-linux-amd64.tar.gz && \ tar -xzf openlist-linux-amd64.tar.gz && \ find . -type f -name "openlist" -exec mv {} . \; && \ rm -rf openlist-linux-amd64.tar.gz *linux-amd64* # 复制并设置脚本权限 COPY --chown=${APP_USER}:${APP_USER} openlist ./ COPY --chown=${APP_USER}:${APP_USER} sync_data.sh ./ RUN chmod +x install_reader.sh sync_data.sh # 暴露服务端口 EXPOSE 5244 # 启动服务 ENTRYPOINT ["/bin/bash", "-c"] CMD ["./sync_data.sh && ./openlist", "server"]