FROM python:3.13-slim COPY --from=ghcr.io/astral-sh/uv:0.12 /uv /usr/local/bin/uv WORKDIR /app ENV UV_COMPILE_BYTECODE=1 UV_LINK_MODE=copy # Dependencies first, so code changes don't reinstall them. COPY pyproject.toml uv.lock ./ RUN uv sync --locked --no-dev --no-install-project COPY src ./src RUN uv sync --locked --no-dev RUN useradd --system --no-create-home app && mkdir /data && chown app /data USER app ENV PATH=/app/.venv/bin:$PATH \ DB_PATH=/data/tag_albums.sqlite3 VOLUME /data EXPOSE 8087 CMD ["tag-albums", "serve", "--port", "8087"]