diff --git a/Dockerfile.api b/Dockerfile.api index 0a9fb85c1b..c004daec25 100644 --- a/Dockerfile.api +++ b/Dockerfile.api @@ -1,8 +1,15 @@ -FROM python:3.11 - -WORKDIR /sqlmesh - +FROM python:3.11-slim-bullseye AS venv-image +RUN apt-get update && apt-get -y install libpq-dev gcc COPY setup.py setup.py COPY sqlmesh/_version.py sqlmesh/_version.py +ENV VIRTUAL_ENV=/.venv +ENV PATH="$VIRTUAL_ENV/bin:$PATH" +RUN python3 -m venv $VIRTUAL_ENV +RUN pip3 install -e .[dev,web] -RUN pip install -e .[dev,web] +FROM python:3.11-slim-bullseye as app-image +WORKDIR /app +ENV VIRTUAL_ENV=/opt/venv +ENV PATH="$VIRTUAL_ENV/bin:$PATH" +RUN python3 -m venv $VIRTUAL_ENV +COPY --from=venv-image /.venv $VIRTUAL_ENV diff --git a/docker-compose.yml b/docker-compose.yml index ab75e0569a..b0dfa1529d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,7 +7,7 @@ services: build: context: . dockerfile: Dockerfile.api - command: python web/server/openapi.py + command: python3 web/server/openapi.py volumes: - .:/sqlmesh @@ -37,7 +37,7 @@ services: build: context: . dockerfile: Dockerfile.api - command: python -m uvicorn web.server.main:app --host 0.0.0.0 --port 8000 --reload --reload-dir /sqlmesh/web/server --reload-dir /sqlmesh/sqlmesh --timeout-keep-alive 300 --timeout-graceful-shutdown 1 + command: python3 -m uvicorn web.server.main:app --host 0.0.0.0 --port 8000 --reload --reload-dir /sqlmesh/web/server --reload-dir /sqlmesh/sqlmesh --timeout-keep-alive 300 --timeout-graceful-shutdown 1 ports: - 8000:8000 volumes: