fix(docker): opt-in INSTALL_OPTIONAL build arg for AGPL extras (#2633)
Default image installs requirements.txt only. Set INSTALL_OPTIONAL=true at build time to add requirements-optional.txt (PyMuPDF, markitdown, etc.) without baking AGPL into the standard distributed image. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -22,9 +22,12 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
|||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
# Install Python deps first (layer cache)
|
# Install Python deps first (layer cache). Optional extras (PyMuPDF AGPL, etc.)
|
||||||
COPY requirements.txt .
|
# are opt-in so the default image stays MIT-core; see requirements-optional.txt.
|
||||||
RUN pip install --no-cache-dir -r requirements.txt
|
ARG INSTALL_OPTIONAL=false
|
||||||
|
COPY requirements.txt requirements-optional.txt ./
|
||||||
|
RUN pip install --no-cache-dir -r requirements.txt \
|
||||||
|
&& if [ "$INSTALL_OPTIONAL" = "true" ]; then pip install --no-cache-dir -r requirements-optional.txt; fi
|
||||||
|
|
||||||
# Copy app code
|
# Copy app code
|
||||||
COPY . .
|
COPY . .
|
||||||
|
|||||||
@@ -64,6 +64,8 @@ cd odysseus
|
|||||||
cp .env.example .env # optional, but recommended for explicit defaults
|
cp .env.example .env # optional, but recommended for explicit defaults
|
||||||
docker compose up -d --build
|
docker compose up -d --build
|
||||||
```
|
```
|
||||||
|
To include optional extras in the image (PDF viewer, Office extraction; includes AGPL PyMuPDF), build with `docker compose build --build-arg INSTALL_OPTIONAL=true` before `up`.
|
||||||
|
|
||||||
Open `http://localhost:7000` when the containers are healthy. Docker Compose
|
Open `http://localhost:7000` when the containers are healthy. Docker Compose
|
||||||
binds the web UI to `127.0.0.1` by default. If the port is taken, set
|
binds the web UI to `127.0.0.1` by default. If the port is taken, set
|
||||||
`APP_PORT=7001` in `.env` and recreate the container. Set `APP_BIND=0.0.0.0`
|
`APP_PORT=7001` in `.env` and recreate the container. Set `APP_BIND=0.0.0.0`
|
||||||
|
|||||||
Reference in New Issue
Block a user