# 使用官方Ubuntu基础镜像 FROM ubuntu:22.04 # 设置构建参数 ARG TZ=Asia/Shanghai ARG APP_USER=suwayomi ARG APP_HOME=/home/suwayomi ARG JAVA_VERSION=21 # 设置环境变量 ENV TZ=${TZ} \ JAVA_HOME=/usr/lib/jvm/java-${JAVA_VERSION}-openjdk-amd64 \ 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 \ openjdk-${JAVA_VERSION}-jdk \ ca-certificates \ curl \ unzip \ bash \ jq \ python3 \ python3-pip \ python3-venv \ dos2unix; \ \ # 清理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; \ \ # 下载 Suwayomi-Server 最新 release curl -L -o $APP_HOME/Suwayomi-Server.jar \ $(curl -s https://api.github.com/repos/Suwayomi/Suwayomi-Server/releases/latest | jq -r '.assets[] | select(.name | test("Suwayomi-Server.*\\.jar$")) | .browser_download_url') # 设置工作目录和用户 WORKDIR $APP_HOME USER $APP_USER # 复制并设置脚本权限 COPY --chown=${APP_USER}:${APP_USER} sync_data.sh ./ RUN dos2unix sync_data.sh && chmod +x sync_data.sh # 暴露服务端口 EXPOSE 4567 # 使用exec形式的ENTRYPOINT以确保信号正确传递 ENTRYPOINT ["/bin/bash", "-c"] CMD ["./sync_data.sh && exec java -jar ./Suwayomi-Server.jar"]