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
This commit is contained in:
Ítalo Johnny
2024-08-26 19:05:08 -03:00
committed by GitHub
parent 1483a465f2
commit 6cdc915460
4 changed files with 71 additions and 13 deletions

View File

@@ -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

View File

@@ -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"]

View File

@@ -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

7
docker/dev.start.sh Executable file
View File

@@ -0,0 +1,7 @@
#!/bin/bash
cd src/frontend \
&& rm -rf node_modules \
&& npm install \
&& npm run dev:docker &
make backend