123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- 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"]
|