FROM nikolaik/python-nodejs:python3.10-nodejs21 # Update and install required packages RUN apt-get update && apt-get install -y gcc g++ git make pipx && rm -rf /var/lib/apt/lists/* ENV LANGFLOW_HOME=/home/langflow \ PATH=/root/.local/bin:$PATH ENV LANGFLOW_DATABASE_URL=sqlite:////home/langflow/langflow.db # Clone the langflow repository and switch to the relevant branch ADD https://api.github.com/repos/logspace-ai/langflow/git/refs/heads/db version.json RUN git clone https://github.com/logspace-ai/langflow.git $LANGFLOW_HOME \ && cd $LANGFLOW_HOME \ && git checkout zustand/io/migration && git pull # Create a non-root user 'langflow' and grant ownership RUN adduser --disabled-password --gecos '' langflow && chown -R langflow:langflow $LANGFLOW_HOME USER langflow # Copy the code into the container, now as the non-root user WORKDIR $LANGFLOW_HOME COPY --chown=langflow:langflow . . # Create logs directory (as 'langflow' user) RUN mkdir logs # Update the config.yaml file, build and install the langflow package # Make sure the non-root user has permissions to execute these operations RUN make setup_poetry && make install_frontend && make build_frontend && make install_backend CMD ["make", "start", "host=0.0.0.0", "port=7860", "log_level=debug", "open_browser=false"]