From 6cdc91546064c5fdfa2f12e15df921c4e9734259 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=8Dtalo=20Johnny?= Date: Mon, 26 Aug 2024 19:05:08 -0300 Subject: [PATCH] build: update docker for dev environment (#3551) * build: update dockerfile for dev environment * chore: add script to centralize docker commands * build: create docker-compose.yml for services * chore: add makefile target for docker-compose --- Makefile | 5 +++++ docker/dev.Dockerfile | 30 ++++++++++++++----------- docker/dev.docker-compose.yml | 42 +++++++++++++++++++++++++++++++++++ docker/dev.start.sh | 7 ++++++ 4 files changed, 71 insertions(+), 13 deletions(-) create mode 100644 docker/dev.docker-compose.yml create mode 100755 docker/dev.start.sh diff --git a/Makefile b/Makefile index 77fd21289..71c7baa56 100644 --- a/Makefile +++ b/Makefile @@ -385,6 +385,11 @@ docker_compose_down: @echo 'Running docker compose down' docker compose -f $(DOCKER_COMPOSE) down || true +dcdev_up: + @echo 'Running docker compose up' + docker compose -f docker/dev.docker-compose.yml down || true + docker compose -f docker/dev.docker-compose.yml up --remove-orphans + lock_base: cd src/backend/base && poetry lock diff --git a/docker/dev.Dockerfile b/docker/dev.Dockerfile index 3e5a1d95e..fe60259b9 100644 --- a/docker/dev.Dockerfile +++ b/docker/dev.Dockerfile @@ -1,18 +1,22 @@ -FROM python:3.10-slim +FROM python:3.12-bookworm +ENV TZ=UTC WORKDIR /app -# Install Poetry -RUN apt-get update && apt-get install gcc g++ curl build-essential postgresql-server-dev-all -y -RUN curl -sSL https://install.python-poetry.org | python3 - -# # Add Poetry to PATH -ENV PATH="${PATH}:/root/.local/bin" -# # Copy the pyproject.toml and poetry.lock files -COPY poetry.lock pyproject.toml ./ -# Copy the rest of the application codes -COPY ./ ./ +RUN apt update -y +RUN apt install \ + build-essential \ + curl \ + npm \ + -y -# Install dependencies -RUN poetry config virtualenvs.create false && poetry install --no-interaction --no-ansi +COPY . /app -CMD ["uvicorn", "--factory", "langflow.main:create_app", "--host", "0.0.0.0", "--port", "7860", "--reload", "--log-level", "debug", "--loop", "asyncio"] +RUN pip install poetry +RUN poetry config virtualenvs.create false +RUN poetry install --no-interaction --no-ansi + +EXPOSE 7860 +EXPOSE 3000 + +CMD ["./docker/dev.start.sh"] diff --git a/docker/dev.docker-compose.yml b/docker/dev.docker-compose.yml new file mode 100644 index 000000000..31b6505c9 --- /dev/null +++ b/docker/dev.docker-compose.yml @@ -0,0 +1,42 @@ +networks: + dev-langflow: + +services: + langflow: + build: + context: .. + dockerfile: docker/dev.Dockerfile + image: dev-langflow + container_name: dev-langflow + restart: always + ports: + - "7860:7860" + - "3000:3000" + environment: + - PYTHONDONTWRITEBYTECODE=1 + - LANGFLOW_DATABASE_URL=postgresql://langflow:langflow@postgres:5432/langflow + - LANGFLOW_SUPERUSER=langflow + - LANGFLOW_SUPERUSER_PASSWORD=langflow + - LANGFLOW_CONFIG_DIR=/var/lib/langflow + env_file: + - ../.env + volumes: + - ../:/app + depends_on: + - postgres # DependĂȘncia no seu banco de dados existente + networks: + - dev-langflow + + + postgres: + container_name: postgres + image: pgvector/pgvector:pg16 + environment: + POSTGRES_USER: langflow + POSTGRES_PASSWORD: langflow + POSTGRES_DB: langflow + ports: + - "5432:5432" + networks: + - dev-langflow + diff --git a/docker/dev.start.sh b/docker/dev.start.sh new file mode 100755 index 000000000..defa6c513 --- /dev/null +++ b/docker/dev.start.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +cd src/frontend \ + && rm -rf node_modules \ + && npm install \ + && npm run dev:docker & +make backend