-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
25 lines (24 loc) · 899 Bytes
/
Dockerfile
File metadata and controls
25 lines (24 loc) · 899 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
FROM python:3.14-slim AS builder
WORKDIR /app
COPY pyproject.toml uv.lock .
RUN pip install uv && uv sync --frozen
COPY cfg.yml .
COPY src src
RUN find src -name "test_*.py" -delete
FROM python:3.14-slim AS production
WORKDIR /app
# graphviz: `dot` binary used by SldHmiSvgService to layout the runtime SVG.
# fonts-liberation + fonts-dejavu-core: TrueType fonts so matplotlib's
# Agg backend can rasterize MTEXT in SldEngineeringService's PDF output —
# debian-slim ships no fonts by default.
RUN apt-get update && apt-get install -y --no-install-recommends \
graphviz \
fonts-liberation \
fonts-dejavu-core \
&& rm -rf /var/lib/apt/lists/*
COPY pyproject.toml uv.lock .
RUN pip install uv && uv sync --frozen --no-dev --no-install-project
COPY --from=builder /app/src ./src
COPY cfg.yml .
COPY device_templates ./device_templates
CMD ["uv", "run", "-m", "src.main"]