diff --git a/Dockerfile b/Dockerfile index f11ea2a..b6ed386 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,19 +1,20 @@ -# build stage -FROM python:3.11 AS builder +FROM python:3.11 -WORKDIR /build -COPY . . +ENV PYTHONUNBUFFERED=1 \ + PYTHONDONTWRITEBYTECODE=1 \ + PIP_NO_CACHE_DIR=1 -RUN pip install . +RUN apt-get update && apt-get install -y --no-install-recommends \ + build-essential gcc python3-dev pkg-config && \ + rm -rf /var/lib/apt/lists/* -RUN python3 setup.py sdist && \ - pip install dist/*.tar.gz --target /install +WORKDIR /app -# minimal runtime image -FROM python:3.11-slim AS runtime +COPY . /app -COPY --from=builder /install /usr/local/lib/python3.11/site-packages -COPY etc/*.json etc/*.yaml /etc/villas/controller/ -COPY villas-controller.service /etc/systemd/system/ +RUN pip install --upgrade pip setuptools wheel build && \ + python -m build + +RUN pip install --no-build-isolation --no-cache-dir dist/*.tar.gz ENTRYPOINT ["villas-controller"]