Files
WattpadDownloader/Dockerfile
T

50 lines
1.0 KiB
Docker
Raw Normal View History

FROM node:20-alpine
2023-12-29 03:07:07 +00:00
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
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
RUN apt update && \
apt install -y git build-essential python3.13-dev libglib2.0-0 libpango-1.0-0 libpangoft2-1.0-0 && \
apt clean && \
rm -rf /var/lib/apt/lists/*
# aiohttp-client-cache depends on multipart, which requires python3.13-dev to build successfully on 3.13
# weasyprint depends on libgoject, libpango, and libpangoft2
2025-10-29 01:57:58 +05:30
# https://github.com/TheOnlyWayUp/WattpadDownloader/pull/82#discussion_r2470358950
2024-12-06 15:28:32 +00:00
WORKDIR /app
# --- #
2024-12-02 17:02:23 -05: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
RUN uv sync && uv cache clean
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
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-10-30 13:38:13 -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
EXPOSE 80
CMD [ "uv", "run", "main.py"]