29 lines
845 B
Docker
29 lines
845 B
Docker
# 生产镜像:ffmpeg + 多阶段构建 Next 静态页 + Python API(默认端口 8101,减少与同机 SRS/代理 冲突)
|
||
# docker compose up --build
|
||
FROM node:20-bookworm-slim AS console
|
||
WORKDIR /src/web-console
|
||
COPY web-console/package.json web-console/package-lock.json ./
|
||
RUN npm ci
|
||
COPY web-console/ ./
|
||
RUN npm run build
|
||
|
||
FROM python:3.12-slim-bookworm
|
||
WORKDIR /app
|
||
ENV PYTHONDONTWRITEBYTECODE=1 \
|
||
PIP_NO_CACHE_DIR=1 \
|
||
PORT=8101
|
||
|
||
RUN apt-get update \
|
||
&& apt-get install -y --no-install-recommends ffmpeg ca-certificates \
|
||
&& rm -rf /var/lib/apt/lists/* \
|
||
&& ffmpeg -version
|
||
|
||
COPY requirements.txt .
|
||
RUN pip install --no-cache-dir -r requirements.txt
|
||
|
||
COPY . .
|
||
COPY --from=console /src/web-console/out ./web-console/out
|
||
|
||
EXPOSE 8101
|
||
CMD ["sh", "-c", "exec python -m uvicorn web:app --host 0.0.0.0 --port ${PORT}"]
|