feat: adjust docker image build

This commit is contained in:
engigu
2025-12-23 18:18:23 +08:00
parent d8ba20fbce
commit b7f2ad2f48
5 changed files with 19 additions and 21 deletions
+1
View File
@@ -10,6 +10,7 @@ baihu
# Data & Logs # Data & Logs
data/ data/
envs/
# logs/ # logs/
# scripts/ # scripts/
configs/config.ini configs/config.ini
+1 -4
View File
@@ -50,7 +50,7 @@ RUN CGO_ENABLED=0 GOOS=${TARGETOS} GOARCH=${TARGETARCH} \
FROM debian:bookworm-slim FROM debian:bookworm-slim
ENV TZ=Asia/Shanghai ENV TZ=Asia/Shanghai
ENV PATH="/opt/venv/bin:$PATH" ENV PATH="/app/envs/python/bin:$PATH"
# 安装必要系统工具 + Node + Python # 安装必要系统工具 + Node + Python
RUN sed -i 's@deb.debian.org@mirrors.tuna.tsinghua.edu.cn@g' /etc/apt/sources.list.d/debian.sources \ 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 update \
&& apt-get install -y --no-install-recommends \ && apt-get install -y --no-install-recommends \
tzdata git gcc curl wget vim nodejs npm python3 python3-venv python3-pip \ 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/* && rm -rf /var/lib/apt/lists/*
WORKDIR /app WORKDIR /app
+1
View File
@@ -9,6 +9,7 @@ services:
volumes: volumes:
- ./data:/app/data - ./data:/app/data
- ./configs:/app/configs - ./configs:/app/configs
- ./envs:/app/envs
environment: environment:
- TZ=Asia/Shanghai - TZ=Asia/Shanghai
restart: unless-stopped restart: unless-stopped
+1
View File
@@ -8,6 +8,7 @@ services:
volumes: volumes:
- ./data:/app/data - ./data:/app/data
- ./configs:/app/configs - ./configs:/app/configs
- ./envs:/app/envs
environment: environment:
- TZ=Asia/Shanghai - TZ=Asia/Shanghai
restart: unless-stopped restart: unless-stopped
+15 -17
View File
@@ -1,31 +1,29 @@
#!/bin/sh #!/bin/sh
# ============================ PYTHON_VENV_DIR="/app/envs/python"
# 激活 Python 虚拟环境
# ============================
if [ -d /opt/venv ]; then
export PATH="/opt/venv/bin:$PATH"
fi
# ============================ # ============================
# 创建必要目录 # 创建必要目录
# ============================ # ============================
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 if [ ! -d "$PYTHON_VENV_DIR" ]; then
chattr +i /app/data/ql.db 2>/dev/null || true 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 fi
if [ -d /app/configs ]; then # ============================
chattr +i /app/configs 2>/dev/null || true # 激活 Python 虚拟环境
fi # ============================
export PATH="$PYTHON_VENV_DIR/bin:$PATH"
if [ -d /app/data/scripts ]; then
chattr +i /app/data/scripts 2>/dev/null || true
fi
# ============================ # ============================
# 启动应用 # 启动应用