From b7f2ad2f4870bfc5d47ed5c2a261b626d3a1671e Mon Sep 17 00:00:00 2001 From: engigu Date: Tue, 23 Dec 2025 18:18:23 +0800 Subject: [PATCH] feat: adjust docker image build --- .gitignore | 1 + Dockerfile | 5 +---- docker-compose.ghcr.yml | 1 + docker-compose.yml | 1 + docker-entrypoint.sh | 32 +++++++++++++++----------------- 5 files changed, 19 insertions(+), 21 deletions(-) diff --git a/.gitignore b/.gitignore index 12f1a19..2f3a16d 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,7 @@ baihu # Data & Logs data/ +envs/ # logs/ # scripts/ configs/config.ini diff --git a/Dockerfile b/Dockerfile index 382e1bc..28fb0a3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -50,7 +50,7 @@ RUN CGO_ENABLED=0 GOOS=${TARGETOS} GOARCH=${TARGETARCH} \ FROM debian:bookworm-slim ENV TZ=Asia/Shanghai -ENV PATH="/opt/venv/bin:$PATH" +ENV PATH="/app/envs/python/bin:$PATH" # 安装必要系统工具 + Node + Python RUN sed -i 's@deb.debian.org@mirrors.tuna.tsinghua.edu.cn@g' /etc/apt/sources.list.d/debian.sources \ @@ -60,9 +60,6 @@ RUN sed -i 's@deb.debian.org@mirrors.tuna.tsinghua.edu.cn@g' /etc/apt/sources.li && apt-get update \ && apt-get install -y --no-install-recommends \ tzdata git gcc curl wget vim nodejs npm python3 python3-venv python3-pip \ - && python3 -m venv /opt/venv \ - && /opt/venv/bin/pip install --upgrade pip \ - && /opt/venv/bin/pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple \ && rm -rf /var/lib/apt/lists/* WORKDIR /app diff --git a/docker-compose.ghcr.yml b/docker-compose.ghcr.yml index cc8aaeb..7f3d26e 100644 --- a/docker-compose.ghcr.yml +++ b/docker-compose.ghcr.yml @@ -9,6 +9,7 @@ services: volumes: - ./data:/app/data - ./configs:/app/configs + - ./envs:/app/envs environment: - TZ=Asia/Shanghai restart: unless-stopped diff --git a/docker-compose.yml b/docker-compose.yml index fbbd176..3013eb4 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -8,6 +8,7 @@ services: volumes: - ./data:/app/data - ./configs:/app/configs + - ./envs:/app/envs environment: - TZ=Asia/Shanghai restart: unless-stopped \ No newline at end of file diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index e37c85f..1acf533 100644 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -1,31 +1,29 @@ #!/bin/sh -# ============================ -# 激活 Python 虚拟环境 -# ============================ -if [ -d /opt/venv ]; then - export PATH="/opt/venv/bin:$PATH" -fi +PYTHON_VENV_DIR="/app/envs/python" # ============================ # 创建必要目录 # ============================ -mkdir -p /app/data /app/data/scripts /app/configs +mkdir -p /app/data /app/data/scripts /app/configs /app/envs # ============================ -# 设置不可变属性 +# 创建 Python 虚拟环境(如果不存在) # ============================ -if [ -f /app/data/ql.db ]; then - chattr +i /app/data/ql.db 2>/dev/null || true +if [ ! -d "$PYTHON_VENV_DIR" ]; then + echo "Creating Python virtual environment..." + python3 -m venv "$PYTHON_VENV_DIR" + "$PYTHON_VENV_DIR/bin/pip" install --upgrade pip + "$PYTHON_VENV_DIR/bin/pip" config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple + echo "Python virtual environment created at $PYTHON_VENV_DIR" +else + echo "Python virtual environment already exists at $PYTHON_VENV_DIR" fi -if [ -d /app/configs ]; then - chattr +i /app/configs 2>/dev/null || true -fi - -if [ -d /app/data/scripts ]; then - chattr +i /app/data/scripts 2>/dev/null || true -fi +# ============================ +# 激活 Python 虚拟环境 +# ============================ +export PATH="$PYTHON_VENV_DIR/bin:$PATH" # ============================ # 启动应用