Spaces:
Sleeping
Sleeping
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"] | |