# SPDX-License-Identifier: GPL-3.0-or-later # # Copyright (C) 2025 Olliver Schinagl ARG TARGET_VERSION="3.11" ARG TARGET_ARCH="library" FROM docker.io/${TARGET_ARCH}/python:${TARGET_VERSION} AS builder WORKDIR /tmp/build COPY pyproject.toml poetry.lock /tmp/build/ RUN pip install --no-cache-dir 'poetry==2.4.1' && \ poetry config virtualenvs.create false && \ poetry install --without dev --extras cli --extras tunnel --no-interaction --no-ansi --no-root COPY . /tmp/build/ RUN poetry build --format wheel --no-interaction FROM docker.io/${TARGET_ARCH}/python:${TARGET_VERSION} RUN useradd --system --create-home --home-dir /home/meshtastic meshtastic COPY --from=builder /tmp/build/dist/*.whl /tmp/ RUN wheel=$(echo /tmp/meshtastic-*.whl) && pip install --no-cache-dir "${wheel}[cli,tunnel]" && \ rm -f /tmp/meshtastic-*.whl COPY "./bin/container-entrypoint.sh" "/init" RUN chmod 0755 /init WORKDIR /home/meshtastic USER meshtastic ENTRYPOINT [ "/init" ]