FROM python:3.14-alpine3.23
# Install required build tools and runtime libraries
RUN apk add --no-cache build-base libffi-dev openssl-dev ca-certificates \
&& update-ca-certificates
# Set working directory for the build
WORKDIR /workspace
# Copy the core library source into the image
COPY libs/core /workspace/langchain_core
# Install Python build tooling and then install the package from source
RUN python -m ensurepip --upgrade && \
pip install --no-cache-dir --upgrade pip setuptools wheel && \
python -m pip install --no-cache-dir .
# Smoke test on container start to ensure the package is importable
CMD ["python", "-c", "import langchain_core, sys; print('LangChain Core imported:', langchain_core.__name__, getattr(langchain_core, '__version__', 'unknown'))"]
.git pyvenv.cfg *.pyc __pycache__/ *.pyo *.pyd *.env venv/ build/ dist/ *.egg-info/ *.egg .env* *.DS_Store *.pytest_cache/ .vscode/ *.log # exclude local editor folders .vim/* .idea/ .vscode/ # ignore tests/builds/etc tests/ standard-tests/ text-splitters/
- Exact error message and exit code
- Error: "Directory '.' is not installable. Neither 'setup.py' nor 'pyproject.toml' found."
- Exit code: 1
- Failing command/step
- RUN python -m ensurepip --upgrade && pip install --no-cache-dir --upgrade pip setuptools wheel && python -m pip install --no-cache-dir .
- Dockerfile step: [5/5]
- Missing packages or files mentioned
- No packaging metadata found in the build context: Neither setup.py nor pyproject.toml exists in the current directory ('.')
- Version mismatch info
- Base image used: docker.io/library/python:3.14-alpine3.23 (as seen in the load metadata). No explicit version mismatch error is reported; the failure is due to missing packaging files in the build context.Image python:3.14-alpine3.23 exists on Docker Hub.
FROM python:3.14-alpine3.23
# Install required build tools and runtime libraries
RUN apk add --no-cache build-base libffi-dev openssl-dev ca-certificates \
&& update-ca-certificates
# Set working directory for the build
WORKDIR /workspace
# Copy the repository into the image
COPY . .
# Install Python build tooling and then install the package from source
RUN cd libs/core && \
python -m ensurepip --upgrade && \
pip install --no-cache-dir --upgrade pip setuptools wheel && \
pip install --no-cache-dir .
# Smoke test on container start to ensure the package is importable
CMD ["python", "-c", "import langchain_core as lc; print('OK', lc.__name__)" ]
Concerns: FROM image tag uses a non-standard/likely non-existent Python version (python:3.14-alpine3.23) which may fail to build in a real registry., COPY . . may include non-source files or large datasets; the build relies on libs/core being a valid Python package with a proper setup/pyproject, which is not guaranteed from the Dockerfile alone.
Smoke [FAIL]: python -c "import langchain_core as lc, inspect; ok = inspect.ismodule(lc); assert ok; print('OK', lc.__name__)
Output: sh: syntax error: unterminated quoted stringFROM python:3.14-alpine3.23
# Install required build tools and runtime libraries
RUN apk add --no-cache build-base libffi-dev openssl-dev ca-certificates \
&& update-ca-certificates
# Set working directory for the build
WORKDIR /workspace
# Copy only the core library package into the image
COPY libs/core /workspace/libs/core
# Install Python build tooling and then install the package from source
RUN python -m ensurepip --upgrade && \
pip install --no-cache-dir --upgrade pip setuptools wheel && \
pip install --no-cache-dir /workspace/libs/core
# Smoke test on container start to ensure the package is importable
CMD ["python", "-c", "import importlib; m = importlib.import_module('langchain_core'); print('OK', m.__name__)" ]
Concerns: FROM image tag python:3.14-alpine3.23 may not exist; Python 3.14 is not a released version and the matching Alpine tag is likely unavailable., COPY libs/core /workspace/libs/core assumes the source path exists and contains a standalone installable package; if not, the build will fail., The CMD tries to import langchain_core; if the package name differs or installation from source fails, container startup will error.
FROM python:3.11-alpine3.18
# Install required system dependencies for building Python packages
RUN apk add --no-cache build-base libffi-dev openssl-dev ca-certificates \
&& update-ca-certificates
# Set a working directory for the build
WORKDIR /workspace
# Copy only the core LangChain library package into the image
COPY libs/core /workspace/libs/core
# Build and install the package from source
WORKDIR /workspace/libs/core
RUN python -m ensurepip --upgrade >/dev/null 2>&1 || true \
&& pip install --no-cache-dir --upgrade pip setuptools wheel \
&& pip install --no-cache-dir .
# Simple runtime check to ensure the package is importable
CMD ["python", "-c", "import langchain_core as lc; print('OK', lc.__name__)" ]
Smoke [FAIL]: python -c 'import langchain_core as lc; pubs = [n for n in dir(lc) if not n.startswith("_")]; assert len(pubs) > 0; print("OK", pubs[0])
Output: sh: syntax error: unterminated quoted string
Smoke [FAIL]: python -c 'import langchain_core as lc; callables = [getattr(lc, n) for n in dir(lc) if callable(getattr(lc, n)) and not n.startswith("_")]; assert isinstance(callables, list); print("OK", len(callables))
Output: sh: syntax error: unterminated quoted stringFROM python:3.11-alpine3.18
# Install required system dependencies for building Python packages
RUN apk add --no-cache build-base libffi-dev openssl-dev ca-certificates \
&& update-ca-certificates
# Set a working directory for the build
WORKDIR /workspace
# Copy only the core LangChain library package into the image
COPY libs/core /workspace/libs/core
# Build and install the package from source
WORKDIR /workspace/libs/core
RUN python -m ensurepip --upgrade >/dev/null 2>&1 || true \
&& pip install --no-cache-dir --upgrade pip setuptools wheel \
&& pip install --no-cache-dir .
# Simple runtime check to ensure the package is importable
CMD ["python", "-c", "import langchain_core as lc; pubs=[n for n in dir(lc) if not n.startswith('_')]; print('OK', pubs[0])"]
Concerns: COPY path/libs/core must exist in the repository; if the path is different or the core package layout changes, the build will fail., The runtime CMD only tests importability by printing the first public attribute; it does not exercise actual library functionality and may miss runtime issues related to dependencies or runtime behavior., Using Alpine-based Python builds can sometimes reveal missing build-time dependencies for certain packages; ensure all needed wheels or build deps are available in the build stage.
Smoke [FAIL]: python -c 'import langchain_core as lc; pubs=[n for n in dir(lc) if not n.startswith("_")]; assert pubs; print("OK", pubs[0])
Output: sh: syntax error: unterminated quoted string
Smoke [FAIL]: python -c 'import langchain_core as lc; ver = getattr(lc, "__version__", None) or getattr(lc, "VERSION", None); assert ver is not None; print("OK", ver)
Output: sh: syntax error: unterminated quoted stringFROM python:3.11-alpine3.18
# Install required system dependencies for building Python packages
RUN apk add --no-cache build-base libffi-dev openssl-dev ca-certificates \
&& update-ca-certificates
# Set a working directory for the build
WORKDIR /workspace
# Copy the core LangChain library package into the image
COPY libs/core /workspace/libs/core
# Build and install the package from source
WORKDIR /workspace/libs/core
RUN python -m ensurepip --upgrade >/dev/null 2>&1 || true \
&& pip install --no-cache-dir --upgrade pip setuptools wheel \
&& pip install --no-cache-dir .
# Create a small runtime check script to verify importability
RUN printf 'import langchain_core as lc\nprint("OK", getattr(lc, "__name__", "langchain_core"))\n' > /workspace/check_import.py
# Simple runtime check to ensure the package is importable
CMD ["python", "/workspace/check_import.py"]
Concerns: The runtime import name (langchain_core) may not match the actual installed package name depending on the library's setup configuration; if mismatched, the import could fail and the image won't smoke correctly., Building from source assumes libs/core is a valid Python package with a proper setup.py/pyproject; if packaging is missing or dependencies are unmet, pip install . may fail., The smoke test only exercises a basic import and prints a simple message; it would be stronger to also verify a minimal API call or version to catch deeper import/runtime issues. Smoke [FAIL]: docker run --rm --entrypoint "" <image> sh -c "python /workspace/check_import.py | grep -q '^OK' && echo PASS Output: sh: syntax error: unterminated quoted string
FROM python:3.11-alpine3.18
# Install required system dependencies for building Python packages
RUN apk add --no-cache build-base libffi-dev openssl-dev ca-certificates \
&& update-ca-certificates
# Set a working directory for the build
WORKDIR /workspace
# Copy the core LangChain library package into the image
COPY libs/core /workspace/libs/core
# Build and install the package from source
WORKDIR /workspace/libs/core
RUN python -m ensurepip --upgrade >/dev/null 2>&1 || true \
&& pip install --no-cache-dir --upgrade pip setuptools wheel \
&& pip install --no-cache-dir .
# Simple runtime check to ensure the package is importable
CMD ["python", "-c", "import langchain_core as lc; print(\"OK\", getattr(lc, \"__name__\", \"langchain_core\"))"]
Smoke [FAIL]: python -c 'import langchain_core as lc; assert isinstance(dir(lc), list) and len(dir(lc))>0; print("ok")
Output: sh: syntax error: unterminated quoted stringFROM python:3.11-alpine3.18
# Install required system dependencies for building Python packages
RUN apk add --no-cache build-base libffi-dev openssl-dev ca-certificates \
&& update-ca-certificates
# Set a working directory for the build
WORKDIR /workspace
# Copy the core LangChain library package into the image
COPY libs/core /workspace/libs/core
# Build and install the package from source
WORKDIR /workspace/libs/core
RUN python -m ensurepip --upgrade >/dev/null 2>&1 || true \
&& pip install --no-cache-dir --upgrade pip setuptools wheel \
&& pip install --no-cache-dir .
# Simple runtime check to ensure the package is importable
CMD ["python", "-c", "import langchain_core as lc; print('OK', getattr(lc, '__name__', 'langchain_core'))"]
Concerns: The build step requires libs/core to be a valid Python package with a packaging file (setup.py or pyproject.toml); if not, 'pip install .' will fail., The final image installs build tools (build-base, libffi-dev, openssl-dev, ca-certificates, etc.), which increases image size; consider whether a wheel-based install or a slimmer base could be used., The CMD test relies on import of langchain_core and on attributes like __version__ or __name__; if the package omits __version__ or exposes a different API, the runtime smoke test may fail.
Smoke [FAIL]: python -c "import langchain_core as lc; ver = getattr(lc, '__version__', None) or getattr(lc, '__name__', 'langchain_core'); assert isinstance(ver, str) and len(ver) > 0; print('ok', ver)
Output: sh: syntax error: unterminated quoted string
Smoke [FAIL]: python -c "import langchain_core as lc; cl = dir(lc); assert isinstance(cl, list) and len(cl) > 0; print('ok', len(cl))
Output: sh: syntax error: unterminated quoted stringFROM python:3.11-alpine3.18
# Install required system dependencies for building Python packages
RUN apk add --no-cache build-base libffi-dev openssl-dev ca-certificates \
&& update-ca-certificates
# Set a working directory for the build
WORKDIR /workspace
# Copy only the core LangChain library package into the image
COPY libs/core /workspace/libs/core
# Build and install the package from source
WORKDIR /workspace/libs/core
RUN python -m ensurepip --upgrade >/dev/null 2>&1 || true \
&& pip install --no-cache-dir --upgrade pip setuptools wheel \
&& pip install --no-cache-dir .
# Create a small runtime check script to verify importability
RUN printf 'try:\n import langchain_core as lc\n print("OK", getattr(lc, "__name__", "langchain_core"))\nexcept Exception as e:\n print("ERR", e)\n raise\n' > /workspace/check_import.py
# Simple runtime check to ensure the package is importable
CMD ["python", "/workspace/check_import.py"]
Concerns: BUILD CONTEXT: COPY libs/core requires the source path to exist in build context; if absent, docker build will fail., Runtime import test relies on importable package name langchain_core; if the package uses a different module name, the check may misreport success.
Smoke [PASS]: python /workspace/check_import.py | grep -q ^OK && echo PASS
Smoke [PASS]: python -c 'import langchain_core as lc; print("import_ok")' | grep -q ^import_ok && echo PASS