qbit_manage/Dockerfile
bobokun ca4819bc0b
4.5.1 (#874)
# Requirements Updated
- qbittorrent-api==2025.7.0
- fastapi==0.116.1


# New Features
- **Uncategorized Category**: Allow multiple paths for Uncategorized
category and add error handling (Thanks to @cat-of-wisdom #849)
- **Config Auto Backup and Cleanup**: implement automatic backup
rotation (30 most recent backups per config) and cleanup
- **Web UI**: add base URL support for reverse proxy deployments (Fixes
#871)
- **Share Limits**: add option to preserve upload speed limits when
minimums unmet (New config option
`reset_upload_speed_on_unmet_minimums`) (Fixes #835, #791)

# Improvements
- Optimize webUI form rendering
- Better centralized error handling for qbitorrent API operations
- **Web UI**: add editable group names to share limit modal

# Bug Fixes
- Fix bug in remove orphaned to notify when there are 0 orphaned files
- Fixes [Bug]: Cannot run on Python 3.9.18 #864
- fix(qbit): add error handling for qBittorrent API operations

**Full Changelog**:
https://github.com/StuffAnThings/qbit_manage/compare/v4.5.0...v4.5.1

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: cat-of-wisdom <217637421+cat-of-wisdom@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-19 08:59:41 -04:00

52 lines
1.2 KiB
Docker

# Use a multi-stage build to minimize final image size
FROM python:3.13-alpine as builder
ARG BRANCH_NAME=master
ENV BRANCH_NAME=${BRANCH_NAME}
# Install build-time dependencies only
RUN apk add --no-cache \
gcc \
g++ \
libxml2-dev \
libxslt-dev \
zlib-dev \
curl \
bash
# Install UV (fast pip alternative)
RUN curl -LsSf https://astral.sh/uv/install.sh | sh
# Copy only dependency files first (better layer caching)
COPY pyproject.toml setup.py VERSION /app/
WORKDIR /app
# Install project in a virtual env (lightweight & reproducible)
RUN /root/.local/bin/uv pip install --system .
# Final stage: minimal runtime image
FROM python:3.13-alpine
ENV TINI_VERSION=v0.19.0
# Runtime dependencies (smaller than build stage)
RUN apk add --no-cache \
tzdata \
bash \
curl \
jq \
tini \
&& rm -rf /var/cache/apk/*
# Copy installed packages and scripts from builder
COPY --from=builder /usr/local/lib/python3.13/site-packages/ /usr/local/lib/python3.13/site-packages/
COPY --from=builder /app /app
COPY . /app
WORKDIR /app
VOLUME /config
# Expose port 8080
EXPOSE 8080
ENTRYPOINT ["/sbin/tini", "-s", "--"]
CMD ["python3", "qbit_manage.py"]