Files
langflow/docker/dev.Dockerfile
Eric Hare 42fc6ae507 feat: DuckDuckGo as Extension in new Bundle System (#13044)
* feat: DuckDuckGo Extension for bundles

* fix ruff errors

* Update test_pilot_duckduckgo_upgrade.py

* test(lfx): handle non-empty canonical migration table + editable installs

- test_path_override_bypasses_cache: mirror the cached canonical table
  into the temp file instead of asserting it's empty.  Drift in
  migration_table.json (the duckduckgo entries shipped with the B1
  pilot) no longer breaks the cache-bypass invariant.

- test_lfx_duckduckgo_ships_manifest: editable installs (pip install -e)
  surface only dist-info entries in dist.files, so we cannot use that
  path to find extension.json in the workspace venv.  Detect editable
  mode via direct_url.json's PEP 660 marker and fall through to walking
  the source tree; non-editable wheel installs still exercise the
  dist.files path the loader uses at runtime.

* chore: auto-bake note keys and regenerate backend locales/en.json [skip ci]

* fix(docker): copy src/bundles before uv sync so workspace bundles resolve

Each directory under ``src/bundles`` is a uv workspace member referenced by
``langflow-base`` (and the root project) as a path dependency.  The Docker
builders ran ``uv sync --no-install-project`` after copying only the
top-level pyproject.toml files, so resolution failed with
``Distribution not found at: file:///app/src/bundles/<name>``.

Copying the whole ``src/bundles`` tree (rather than enumerating each
bundle) means a new bundle dropped under that dir does not require a
Dockerfile edit.  The full ``./src`` copy a few lines later produces the
same final layer either way; this earlier copy just unblocks the
dependency-resolution sync.

Touched all builders that run a workspace-resolving uv sync:

  * docker/build_and_push.Dockerfile
  * docker/build_and_push_base.Dockerfile
  * docker/build_and_push_ep.Dockerfile
  * docker/build_and_push_with_extras.Dockerfile
  * docker/dev.Dockerfile (bind-mount instead of COPY)

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-08 17:14:38 -07:00

37 lines
1.3 KiB
Docker

FROM ghcr.io/astral-sh/uv:python3.12-bookworm-slim
ENV TZ=UTC
WORKDIR /app
RUN apt-get update \
&& apt-get upgrade -y \
&& apt-get install -y \
build-essential \
curl \
npm \
git \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
COPY . /app
# Install dependencies using uv
RUN --mount=type=cache,target=/root/.cache/uv \
--mount=type=bind,source=uv.lock,target=uv.lock \
--mount=type=bind,source=README.md,target=README.md \
--mount=type=bind,source=pyproject.toml,target=pyproject.toml \
--mount=type=bind,source=src/backend/base/README.md,target=src/backend/base/README.md \
--mount=type=bind,source=src/backend/base/uv.lock,target=src/backend/base/uv.lock \
--mount=type=bind,source=src/backend/base/pyproject.toml,target=src/backend/base/pyproject.toml \
--mount=type=bind,source=src/lfx/README.md,target=src/lfx/README.md \
--mount=type=bind,source=src/lfx/pyproject.toml,target=src/lfx/pyproject.toml \
--mount=type=bind,source=src/sdk/README.md,target=src/sdk/README.md \
--mount=type=bind,source=src/sdk/pyproject.toml,target=src/sdk/pyproject.toml \
--mount=type=bind,source=src/bundles,target=src/bundles \
uv sync --frozen --no-install-project --no-dev --extra postgresql
EXPOSE 7860
EXPOSE 3000
CMD ["./docker/dev.start.sh"]