FROM python:3.11-slim WORKDIR /app # 环境变量 ENV PYTHONDONTWRITEBYTECODE=1 ENV PYTHONUNBUFFERED=1 ENV PIP_DISABLE_PIP_VERSION_CHECK=on ENV NVM_DIR=/root/.nvm # 安装依赖并使用 nvm 安装 Node.js v24 RUN apt-get update && \ apt-get install -y --no-install-recommends \ curl \ gcc \ libpq-dev \ ca-certificates \ bash \ gnupg \ make \ build-essential \ openssl \ xz-utils && \ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash && \ . "$NVM_DIR/nvm.sh" && \ nvm install 24 && \ nvm alias default 24 && \ nvm use default && \ ln -s "$NVM_DIR/versions/node/$(ls $NVM_DIR/versions/node)/bin/node" /usr/bin/node && \ ln -s "$NVM_DIR/versions/node/$(ls $NVM_DIR/versions/node)/bin/npm" /usr/bin/npm && \ ln -s "$NVM_DIR/versions/node/$(ls $NVM_DIR/versions/node)/bin/npx" /usr/bin/npx && \ rm -rf /var/lib/apt/lists/* # 验证 node/npm(可选) RUN node -v && npm -v RUN npm install -g jsdom canvas # 安装 Python 依赖 COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt # 拷贝项目文件 COPY . . EXPOSE 6060 CMD ["hypercorn", "task_app:app", "--config", "app_config.toml"]