diff --git a/backend/health/views.py b/backend/health/views.py index 715b17902d..3fe441a8a5 100644 --- a/backend/health/views.py +++ b/backend/health/views.py @@ -11,5 +11,5 @@ @api_view(["GET"]) @require_http_methods(["GET"]) def health_check(request: Request) -> Response: - logger.debug("Verifying backend health..") + logger.debug("Verifying backend health") return Response(status=200) diff --git a/docker/dockerfiles/backend.Dockerfile b/docker/dockerfiles/backend.Dockerfile index 122edd6ffe..59cd98399f 100644 --- a/docker/dockerfiles/backend.Dockerfile +++ b/docker/dockerfiles/backend.Dockerfile @@ -1,10 +1,8 @@ # Use a specific version of Python slim image FROM python:3.12-slim-trixie AS base -ARG VERSION=dev LABEL maintainer="Zipstack Inc." \ - description="Backend Service Container" \ - version="${VERSION}" + description="Backend Service Container" # Set environment variables ENV PYTHONDONTWRITEBYTECODE=1 \ @@ -80,4 +78,8 @@ RUN if [ -f requirements.txt ]; then \ EXPOSE 8000 +# Capture build version at the very end so it doesn't affect layer caching +ARG VERSION=dev +ENV UNSTRACT_APPS_VERSION=${VERSION} + ENTRYPOINT [ "./entrypoint.sh" ] diff --git a/docker/dockerfiles/platform.Dockerfile b/docker/dockerfiles/platform.Dockerfile index 8e5cd9bacc..31b66ce081 100644 --- a/docker/dockerfiles/platform.Dockerfile +++ b/docker/dockerfiles/platform.Dockerfile @@ -1,10 +1,8 @@ # Use a specific version of Python slim image FROM python:3.12-slim-trixie AS base -ARG VERSION=dev LABEL maintainer="Zipstack Inc." \ - description="Platform Service Container" \ - version="${VERSION}" + description="Platform Service Container" ENV PYTHONDONTWRITEBYTECODE=1 \ PYTHONUNBUFFERED=1 \ @@ -82,5 +80,8 @@ RUN uv sync --group deploy --locked && \ EXPOSE 3001 +ARG VERSION=dev +ENV UNSTRACT_APPS_VERSION=${VERSION} + # During debugging, this entry point will be overridden CMD [".venv/bin/gunicorn", "--bind", "0.0.0.0:3001", "--timeout", "300", "unstract.platform_service.run:app"] diff --git a/docker/dockerfiles/prompt.Dockerfile b/docker/dockerfiles/prompt.Dockerfile index f15a2fb054..cca9161d81 100644 --- a/docker/dockerfiles/prompt.Dockerfile +++ b/docker/dockerfiles/prompt.Dockerfile @@ -1,10 +1,8 @@ # Use a specific version of Python slim image FROM python:3.12-slim-trixie AS base -ARG VERSION=dev LABEL maintainer="Zipstack Inc." \ - description="Prompt Service Container" \ - version="${VERSION}" + description="Prompt Service Container" ENV PYTHONDONTWRITEBYTECODE=1 \ PYTHONUNBUFFERED=1 \ @@ -97,4 +95,7 @@ RUN mkdir -p prompt-studio-data EXPOSE 3003 +ARG VERSION=dev +ENV UNSTRACT_APPS_VERSION=${VERSION} + CMD ["./entrypoint.sh"] diff --git a/docker/dockerfiles/runner.Dockerfile b/docker/dockerfiles/runner.Dockerfile index d2065c72b4..520637d503 100644 --- a/docker/dockerfiles/runner.Dockerfile +++ b/docker/dockerfiles/runner.Dockerfile @@ -1,10 +1,8 @@ # Use a specific version of Python slim image FROM python:3.12-slim-trixie AS base -ARG VERSION=dev LABEL maintainer="Zipstack Inc." \ - description="Runner Service Container" \ - version="${VERSION}" + description="Runner Service Container" # Set environment variables ENV PYTHONDONTWRITEBYTECODE=1 \ @@ -83,4 +81,7 @@ RUN if [ -f cloud_requirements.txt ]; then \ EXPOSE 5002 +ARG VERSION=dev +ENV UNSTRACT_APPS_VERSION=${VERSION} + CMD [ "./entrypoint.sh" ] diff --git a/docker/dockerfiles/tool-sidecar.Dockerfile b/docker/dockerfiles/tool-sidecar.Dockerfile index 7da04806d6..08c22fdd5d 100644 --- a/docker/dockerfiles/tool-sidecar.Dockerfile +++ b/docker/dockerfiles/tool-sidecar.Dockerfile @@ -1,10 +1,8 @@ # Use Python 3.12.9-slim for minimal size FROM python:3.12-slim-trixie AS base -ARG VERSION=dev LABEL maintainer="Zipstack Inc." \ - description="Tool Sidecar Container" \ - version="${VERSION}" + description="Tool Sidecar Container" ENV PYTHONDONTWRITEBYTECODE=1 \ PYTHONUNBUFFERED=1 \ @@ -81,4 +79,7 @@ RUN uv sync --group deploy --locked && \ uv run opentelemetry-bootstrap -a requirements | uv pip install --requirement - && \ chmod +x ./entrypoint.sh +ARG VERSION=dev +ENV UNSTRACT_APPS_VERSION=${VERSION} + CMD ["./entrypoint.sh"] diff --git a/docker/dockerfiles/worker-unified.Dockerfile b/docker/dockerfiles/worker-unified.Dockerfile index 202f71b699..05fa32063b 100644 --- a/docker/dockerfiles/worker-unified.Dockerfile +++ b/docker/dockerfiles/worker-unified.Dockerfile @@ -1,10 +1,8 @@ # Unified Worker Dockerfile - Optimized for fast builds FROM python:3.12.9-slim AS base -ARG VERSION=dev LABEL maintainer="Zipstack Inc." \ - description="Unified Worker Container for All Worker Types" \ - version="${VERSION}" + description="Unified Worker Container for All Worker Types" # Set environment variables (CRITICAL: PYTHONPATH makes paths work!) ENV PYTHONDONTWRITEBYTECODE=1 \ @@ -87,6 +85,10 @@ RUN uv sync --group deploy --locked && \ USER worker +# Capture build version at the very end so it doesn't affect layer caching +ARG VERSION=dev +ENV UNSTRACT_APPS_VERSION=${VERSION} + # Default command - runs the Docker-optimized worker script ENTRYPOINT ["/app/run-worker-docker.sh"] CMD ["general"] diff --git a/docker/dockerfiles/x2text.Dockerfile b/docker/dockerfiles/x2text.Dockerfile index 4ef060dc2b..abdc9d52b0 100644 --- a/docker/dockerfiles/x2text.Dockerfile +++ b/docker/dockerfiles/x2text.Dockerfile @@ -1,10 +1,8 @@ # Use a specific version of Python slim image FROM python:3.12-slim-trixie AS base -ARG VERSION=dev LABEL maintainer="Zipstack Inc." \ - description="X2Text Service Container" \ - version="${VERSION}" + description="X2Text Service Container" # Set environment variables ENV PYTHONDONTWRITEBYTECODE=1 \ @@ -70,5 +68,8 @@ RUN uv sync --group deploy --locked && \ EXPOSE 3004 +ARG VERSION=dev +ENV UNSTRACT_APPS_VERSION=${VERSION} + # During debugging, this entry point will be overridden. CMD [".venv/bin/gunicorn", "--bind", "0.0.0.0:3004", "--timeout", "300", "run:app"] diff --git a/prompt-service/src/unstract/prompt_service/config.py b/prompt-service/src/unstract/prompt_service/config.py index 5edfb829ed..0930c76041 100644 --- a/prompt-service/src/unstract/prompt_service/config.py +++ b/prompt-service/src/unstract/prompt_service/config.py @@ -38,7 +38,7 @@ def create_app() -> Flask: log_level = getattr(logging, log_level, logging.INFO) app = Flask("prompt-service") app.logger.setLevel(log_level) - app.logger.info("Initializing Flask application...") + app.logger.info("Initializing Flask application") # Load plugins plugins_dir = Path(__file__).parent / "plugins"