2023-12-29 03:07:07 +00:00
|
|
|
FROM node:20
|
|
|
|
|
|
|
|
|
|
WORKDIR /build
|
|
|
|
|
COPY src/frontend/package*.json .
|
|
|
|
|
RUN rm -rf node_modules
|
|
|
|
|
RUN rm -rf build
|
|
|
|
|
RUN npm install
|
|
|
|
|
COPY src/frontend/. .
|
2025-06-24 12:59:31 -04:00
|
|
|
|
2025-06-24 15:26:53 -04:00
|
|
|
ARG pdfs=false
|
|
|
|
|
ENV VITE_ENABLE_PDFS=$pdfs
|
2025-06-24 12:59:31 -04:00
|
|
|
|
2023-12-29 03:07:07 +00:00
|
|
|
RUN npm run build
|
|
|
|
|
# Thanks https://stackoverflow.com/q/76988450
|
|
|
|
|
|
2025-06-05 14:18:08 -04:00
|
|
|
FROM python:3.13-slim
|
2023-12-29 03:07:07 +00:00
|
|
|
|
|
|
|
|
WORKDIR /app
|
2024-12-02 17:02:23 -05:00
|
|
|
|
2024-12-22 12:16:43 +00:00
|
|
|
COPY --from=nobodyxu/apt-fast:latest-debian-buster-slim /usr/local/ /usr/local/
|
2024-12-06 07:20:21 +00:00
|
|
|
|
2024-12-22 12:16:43 +00:00
|
|
|
RUN apt update
|
|
|
|
|
RUN apt install -y aria2
|
2025-10-28 16:44:45 +05:30
|
|
|
RUN apt-fast install -y git build-essential python3.13-dev libgobject-2.0 libpango-1.0 libpangoft2-1.0
|
|
|
|
|
# aiohttp-client-cache depends on multipart, which requires python3.13-dev to build successfully on 3.13
|
|
|
|
|
# weasyprint depends on libgoject, libpango, and libpangoft2
|
2024-12-06 15:28:32 +00:00
|
|
|
|
2025-10-29 01:57:58 +05:30
|
|
|
RUN rm -rf /var/lib/apt/lists/*
|
|
|
|
|
# https://github.com/TheOnlyWayUp/WattpadDownloader/pull/82#discussion_r2470358950
|
|
|
|
|
|
2024-12-06 15:28:32 +00:00
|
|
|
|
|
|
|
|
WORKDIR /app
|
2024-12-06 07:20:21 +00:00
|
|
|
|
|
|
|
|
# --- #
|
2024-12-02 17:02:23 -05:00
|
|
|
|
2024-12-08 12:45:42 +00:00
|
|
|
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
|
|
|
|
|
|
2025-10-28 18:28:37 -04:00
|
|
|
COPY src/api/pyproject.toml /app
|
2025-10-28 16:44:45 +05:30
|
|
|
RUN uv sync
|
2025-10-28 18:28:37 -04:00
|
|
|
COPY src/api/ /app
|
2024-12-06 15:28:32 +00:00
|
|
|
COPY --from=0 /build/build /app/src/build
|
|
|
|
|
|
2024-12-07 09:38:33 +00:00
|
|
|
RUN ln -s /app/src/pdf/fonts /tmp/fonts
|
|
|
|
|
|
2024-12-06 15:28:32 +00:00
|
|
|
WORKDIR /app/src
|
2023-12-29 03:07:07 +00:00
|
|
|
|
2025-06-24 12:59:31 -04:00
|
|
|
ARG feature_flag=false
|
|
|
|
|
ENV VITE_FEATURE_FLAG=$feature_flag
|
|
|
|
|
|
2023-12-29 03:07:07 +00:00
|
|
|
EXPOSE 80
|
|
|
|
|
|
2025-10-28 16:44:45 +05:30
|
|
|
CMD [ "uv", "run", "main.py"]
|