#!/bin/sh # F59:exec 让 python 成为 PID 1 直接接收 SIGTERM,容器停止不再经 shell 转发而超时 # 第 93 条(P2-4):compose 挂载 ./user_cookie.txt 时若宿主不存在该文件,Docker 会 # 在启动前创建同名**目录**并挂载——容器内 touch 只对无卷 docker run 有效。 # 第 97 条(P3):检测到同名目录直接报错退出(fail-fast),不再静默带病运行 for f in user_cookie.txt cookie.txt; do if [ -d "/app/$f" ]; then echo "FATAL: /app/$f 是目录(宿主机缺文件时 Docker 挂载会建同名目录)。请在宿主机先 touch 该文件再启动。" >&2 exit 1 fi [ -f "/app/$f" ] || touch "/app/$f" done # 生产服务器:uvicorn(FastAPI)。 exec python3 web/main.py