FROM python:3.12 AS build RUN pip install poetry ENV POETRY_NO_INTERACTION=1 \ POETRY_VIRTUALENVS_IN_PROJECT=1 \ POETRY_VIRTUALENVS_CREATE=1 \ POETRY_CACHE_DIR=/tmp/poetry_cache WORKDIR /app COPY pyproject.toml poetry.lock ./ COPY packages ./packages RUN apt update && apt install -y build-essential RUN if [ $(dpkg --print-architecture) = "armhf" ]; then \ printf "[global]\nextra-index-url=https://www.piwheels.org/simple\n" > /etc/pip.conf ; \ fi RUN --mount=type=cache,target=$POETRY_CACHE_DIR poetry -v install --without dev --no-root FROM python:3.12-slim AS final WORKDIR /app ENV VIRTUAL_ENV=/app/.venv \ PATH="/app/.venv/bin:$PATH" \ PYTHONUNBUFFERED=1 COPY --from=build ${VIRTUAL_ENV} ${VIRTUAL_ENV} COPY dsmr2mqtt ./dsmr2mqtt # During debugging, this entry point will be overridden. For more information, refer to https://aka.ms/vscode-docker-python-debug CMD ["python", "-m", "dsmr2mqtt"]