# FROM logspace/backend_build as backend_build FROM logspace/frontend_build as frontend_build # `python-base` sets up all our shared environment variables FROM python:3.10-slim as langflow_build # python ENV PYTHONUNBUFFERED=1 \ # prevents python creating .pyc files PYTHONDONTWRITEBYTECODE=1 \ \ # pip PIP_NO_CACHE_DIR=off \ PIP_DISABLE_PIP_VERSION_CHECK=on \ PIP_DEFAULT_TIMEOUT=100 \ \ # poetry # https://python-poetry.org/docs/configuration/#using-environment-variables POETRY_VERSION=1.4.0 \ # make poetry install to this location POETRY_HOME="/opt/poetry" \ # make poetry create the virtual environment in the project's root # it gets named `.venv` POETRY_VIRTUALENVS_IN_PROJECT=true \ # do not ask any interactive question POETRY_NO_INTERACTION=1 \ \ # paths # this is where our requirements + virtual environment will live PYSETUP_PATH="/opt/pysetup" \ VENV_PATH="/opt/pysetup/.venv" # prepend poetry and venv to path ENV PATH="$POETRY_HOME/bin:$VENV_PATH/bin:$PATH" RUN apt-get update \ && apt-get install --no-install-recommends -y \ # deps for installing poetry curl \ # deps for building python deps build-essential libpq-dev git # install poetry - respects $POETRY_VERSION & $POETRY_HOME # RUN curl -sSL https://install.python-poetry.org | python3 - # copy project requirement files here to ensure they will be cached. WORKDIR /app COPY pyproject.toml ./ # copy langflow COPY ./langflow ./langflow # Copy files from frontend COPY --from=frontend_build /app/build /app/langflow/frontend/build/ # RUN pip install langflow-0.0.17-py3-none-any.whl RUN pip install . # RUN poetry add dist/langflow-0.0.17-py3-none-any.whl # RUN rm *.whl # RUN poetry build EXPOSE 5003 CMD [ "langflow" ]