diff --git a/docker/Dockerfile b/docker/Dockerfile index ba7c789..f747bcc 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -9,6 +9,7 @@ ENV TZ=Asia/Shanghai \ DEBIAN_FRONTEND=noninteractive \ PYTHONUNBUFFERED=1 \ PYTHONDONTWRITEBYTECODE=1 \ + PYTHONPATH=/app:/app/vnpy_v4.4.0 \ VNPY_LOG_LEVEL=INFO \ TA_LIBRARY_PATH=/usr/local/lib \ TA_INCLUDE_PATH=/usr/local/include @@ -60,7 +61,7 @@ COPY sanguo_data/ /app/sanguo_data/ COPY sanguo_common/ /app/sanguo_common/ # 复制启动脚本 -COPY docker/entrypoint.sh /app/ +COPY entrypoint.sh /app/ RUN chmod +x /app/entrypoint.sh # 暴露端口 diff --git a/docker/Dockerfile.local b/docker/Dockerfile.local index 06230b2..6b97076 100644 --- a/docker/Dockerfile.local +++ b/docker/Dockerfile.local @@ -33,7 +33,7 @@ COPY vnpy_v4.4.0/vnpy/ /app/vnpy/ COPY run_web.py /app/ # 复制启动脚本 -COPY docker/entrypoint.sh /app/ +COPY entrypoint.sh /app/ RUN chmod +x /app/entrypoint.sh # 暴露端口 diff --git a/docker/Dockerfile.nas b/docker/Dockerfile.nas index aff6520..52115ff 100644 --- a/docker/Dockerfile.nas +++ b/docker/Dockerfile.nas @@ -18,7 +18,7 @@ COPY vnpy_v4.4.0/vnpy/ ./vnpy/ COPY config/ ./config/ # 复制启动脚本 -COPY docker/entrypoint.sh . +COPY entrypoint.sh . RUN chmod +x entrypoint.sh # 创建数据目录 diff --git a/docker/entrypoint.sh b/entrypoint.sh similarity index 96% rename from docker/entrypoint.sh rename to entrypoint.sh index c253759..3497fb1 100644 --- a/docker/entrypoint.sh +++ b/entrypoint.sh @@ -63,6 +63,11 @@ check_env() { export PYTHONUNBUFFERED="${PYTHONUNBUFFERED:-1}" export PYTHONDONTWRITEBYTECODE="${PYTHONDONTWRITEBYTECODE:-1}" + # Python 路径(关键): ProcessPoolExecutor(spawn)子进程不继承主进程 sys.path(内存修改), + # 但继承环境变量。设 PYTHONPATH 让 spawn 子进程 import sanguo_*/vnpy 不 ModuleNotFoundError→BrokenProcessPool。 + # 镜像 Dockerfile ENV 同设此值(优先),此行为旧镜像/无 ENV 时兜底。 + export PYTHONPATH="${PYTHONPATH:-/app:/app/vnpy_v4.4.0}" + # VeighNa 配置 export VNPY_LOG_LEVEL="${VNPY_LOG_LEVEL:-INFO}" export VNPY_LOG_FILE="${VNPY_LOG_FILE:-/app/logs/vnpy.log}"