From 29e662848cd91dc2a73c5eaf3d19f13d4b6687e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=8Dtalo=20Johnny?= Date: Thu, 4 Jul 2024 11:14:52 -0300 Subject: [PATCH] chore: simplify docker (#2526) * chore: add docker command shortcuts to makefile * chore: replaced entreypoint with cmd * chore: remove enviroment variable --- Makefile | 55 ++++++++++++++++++++++++ docker/build_and_push.Dockerfile | 2 +- docker/build_and_push_backend.Dockerfile | 3 +- docker/build_and_push_base.Dockerfile | 2 +- docker_example/docker-compose.yml | 1 - 5 files changed, 59 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 0b03489ab..64a57b439 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,12 @@ .PHONY: all init format lint build build_frontend install_frontend run_frontend run_backend dev help tests coverage all: help +VERSION=$(shell grep "^version" pyproject.toml | sed 's/.*\"\(.*\)\"$$/\1/') +DOCKERFILE=docker/build_and_push.Dockerfile +DOCKERFILE_BACKEND=docker/build_and_push_backend.Dockerfile +DOCKERFILE_FRONTEND=docker/frontend/build_and_push_frontend.Dockerfile +DOCKER_COMPOSE=docker_example/docker-compose.yml + log_level ?= debug host ?= 0.0.0.0 port ?= 7860 @@ -270,6 +276,55 @@ else endif +docker_build: dockerfile_build clear_dockerimage ## build DockerFile + + +docker_build_backend: dockerfile_build_be clear_dockerimage ## build Backend DockerFile + + +docker_build_frontend: dockerfile_build_fe clear_dockerimage ## build Frontend Dockerfile + + +dockerfile_build: + @echo 'BUILDING DOCKER IMAGE: ${DOCKERFILE}' + @docker build --rm \ + -f ${DOCKERFILE} \ + -t langflow:${VERSION} . + + +dockerfile_build_be: dockerfile_build + @echo 'BUILDING DOCKER IMAGE BACKEND: ${DOCKERFILE_BACKEND}' + @docker build --rm \ + --build-arg LANGFLOW_IMAGE=langflow:${VERSION} \ + -f ${DOCKERFILE_BACKEND} \ + -t langflow_backend:${VERSION} . + + +dockerfile_build_fe: dockerfile_build + @echo 'BUILDING DOCKER IMAGE FRONTEND: ${DOCKERFILE_FRONTEND}' + @docker build --rm \ + --build-arg LANGFLOW_IMAGE=langflow:${VERSION} \ + -f ${DOCKERFILE_FRONTEND} \ + -t langflow_frontend:${VERSION} . + + +clear_dockerimage: + @echo 'Clearing the docker build' + @if docker images -f "dangling=true" -q | grep -q '.*'; then \ + docker rmi $$(docker images -f "dangling=true" -q); \ + fi + + +docker_compose_up: docker_build docker_compose_down + @echo 'Running docker compose up' + docker compose -f $(DOCKER_COMPOSE) up --remove-orphans + + +docker_compose_down: + @echo 'Running docker compose down' + docker compose -f $(DOCKER_COMPOSE) down || true + + lock_base: cd src/backend/base && poetry lock diff --git a/docker/build_and_push.Dockerfile b/docker/build_and_push.Dockerfile index 448a802e6..aeb948b5f 100644 --- a/docker/build_and_push.Dockerfile +++ b/docker/build_and_push.Dockerfile @@ -96,4 +96,4 @@ WORKDIR /app ENV LANGFLOW_HOST=0.0.0.0 ENV LANGFLOW_PORT=7860 -ENTRYPOINT ["python", "-m", "langflow", "run"] \ No newline at end of file +CMD ["python", "-m", "langflow", "run"] diff --git a/docker/build_and_push_backend.Dockerfile b/docker/build_and_push_backend.Dockerfile index 2efbefb10..66cf65212 100644 --- a/docker/build_and_push_backend.Dockerfile +++ b/docker/build_and_push_backend.Dockerfile @@ -5,4 +5,5 @@ ARG LANGFLOW_IMAGE FROM $LANGFLOW_IMAGE RUN rm -rf /app/.venv/langflow/frontend -CMD ["--backend-only"] + +CMD ["python", "-m", "langflow", "run", "--host", "0.0.0.0", "--port", "7860", "--backend-only"] diff --git a/docker/build_and_push_base.Dockerfile b/docker/build_and_push_base.Dockerfile index d539c1ae8..a996ec4a6 100644 --- a/docker/build_and_push_base.Dockerfile +++ b/docker/build_and_push_base.Dockerfile @@ -98,4 +98,4 @@ RUN python -m pip install /app/src/backend/base/dist/*.tar.gz --user ENV LANGFLOW_HOST=0.0.0.0 ENV LANGFLOW_PORT=7860 -ENTRYPOINT ["python", "-m", "langflow", "run"] +CMD ["python", "-m", "langflow", "run"] diff --git a/docker_example/docker-compose.yml b/docker_example/docker-compose.yml index 61c02e65e..7e7e34064 100644 --- a/docker_example/docker-compose.yml +++ b/docker_example/docker-compose.yml @@ -10,7 +10,6 @@ services: environment: - LANGFLOW_DATABASE_URL=postgresql://langflow:langflow@postgres:5432/langflow # This variable defines where the logs, file storage, monitor data and secret keys are stored. - - LANGFLOW_CONFIG_DIR=/app/langflow volumes: - langflow-data:/app/langflow