-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
39 lines (28 loc) · 962 Bytes
/
Dockerfile
File metadata and controls
39 lines (28 loc) · 962 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# syntax=docker/dockerfile:1.4
ARG PYTHON_BASE=3.12-slim-bullseye
ARG NODE_BASE=22-slim
FROM node:$NODE_BASE AS frontend-builder
WORKDIR /bill
COPY package.json package-lock.json ./
RUN npm ci
COPY tsconfig.json tailwind.config.js ./
COPY src/ui/*.ts ./src/ui/
COPY src/ui/templates/ ./src/ui/templates/
COPY src/ui/static/input.css ./src/ui/static/
RUN npx tsc
RUN npx @tailwindcss/cli -i ./src/ui/static/input.css -o ./src/ui/static/output.css
FROM python:$PYTHON_BASE AS builder
RUN pip install -U pdm
ENV PDM_CHECK_UPDATE=false
COPY pyproject.toml pdm.lock /bill/
WORKDIR /bill
RUN pdm install --check --prod --no-editable
FROM python:$PYTHON_BASE
COPY --from=builder /bill/.venv/ /bill/.venv/
COPY src/ /bill/src
COPY --from=frontend-builder /bill/src/ui/static/ /bill/src/ui/static/
# RUN rm /bill/src/ui/test_items.json*
ENV PATH="/bill/.venv/bin:$PATH"
ENV PYTHONPATH="/bill/src:$PYTHONPATH"
ENTRYPOINT ["python"]
CMD ["/bill/src/ui/main.py"]