feat: package docker deployment and publish flow
This commit is contained in:
61
Dockerfile
Normal file
61
Dockerfile
Normal file
@ -0,0 +1,61 @@
|
||||
FROM node:24-bookworm-slim AS frontend-builder
|
||||
|
||||
ARG HTTP_PROXY
|
||||
ARG HTTPS_PROXY
|
||||
ARG ALL_PROXY
|
||||
ARG NO_PROXY
|
||||
ARG http_proxy
|
||||
ARG https_proxy
|
||||
ARG all_proxy
|
||||
ARG no_proxy
|
||||
|
||||
WORKDIR /build/frontend
|
||||
COPY frontend/package*.json ./
|
||||
RUN npm ci
|
||||
COPY frontend/ ./
|
||||
RUN npm run build
|
||||
|
||||
FROM python:3.12-slim AS app
|
||||
|
||||
ARG HTTP_PROXY
|
||||
ARG HTTPS_PROXY
|
||||
ARG ALL_PROXY
|
||||
ARG NO_PROXY
|
||||
ARG http_proxy
|
||||
ARG https_proxy
|
||||
ARG all_proxy
|
||||
ARG no_proxy
|
||||
|
||||
ENV PYTHONUNBUFFERED=1 \
|
||||
PYTHONDONTWRITEBYTECODE=1 \
|
||||
PIP_NO_CACHE_DIR=1 \
|
||||
BILIUP_NEXT_CONTAINER=1
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
ca-certificates \
|
||||
curl \
|
||||
ffmpeg \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY pyproject.toml README.md ./
|
||||
COPY src ./src
|
||||
COPY config ./config
|
||||
COPY runtime/README.md runtime/cookies.example.json runtime/upload_config.example.json ./runtime/
|
||||
COPY --from=frontend-builder /build/frontend/dist ./frontend/dist
|
||||
COPY --from=frontend-builder /usr/local/bin/node /usr/local/bin/node
|
||||
COPY --from=frontend-builder /usr/local/lib/node_modules /usr/local/lib/node_modules
|
||||
|
||||
RUN pip install --editable . \
|
||||
&& pip install yt-dlp \
|
||||
&& ln -sf ../lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm \
|
||||
&& ln -sf ../lib/node_modules/npm/bin/npx-cli.js /usr/local/bin/npx \
|
||||
&& npm install -g @openai/codex
|
||||
|
||||
RUN mkdir -p /app/data/workspace/stage /app/data/workspace/session /app/data/workspace/backup /app/runtime/logs /root/.codex
|
||||
|
||||
EXPOSE 8000
|
||||
|
||||
CMD ["biliup-next", "serve", "--host", "0.0.0.0", "--port", "8000"]
|
||||
Reference in New Issue
Block a user