FROM python:3.14.5-slim-bookworm

ARG USERNAME=vscode
ARG USER_UID=1000
ARG USER_GID=1000

ENV PLATFORMIO_CORE_DIR=/home/${USERNAME}/.platformio
ENV PATH="${PLATFORMIO_CORE_DIR}/penv/bin:${PATH}"

RUN apt-get update && apt-get install -y --no-install-recommends \
    git \
    build-essential \
    ca-certificates \
    udev \
    openssh-client \
    sudo \
    && rm -rf /var/lib/apt/lists/*

RUN python -m pip install --no-cache-dir --upgrade pip \
    && pip install --no-cache-dir platformio

RUN groupadd --gid ${USER_GID} ${USERNAME} \
    && useradd --uid ${USER_UID} --gid ${USER_GID} --create-home --shell /bin/bash ${USERNAME} \
    && usermod --append --groups dialout ${USERNAME} \
    && mkdir -p /workspace ${PLATFORMIO_CORE_DIR} \
    && chown -R ${USERNAME}:${USERNAME} /workspace /home/${USERNAME}

RUN echo "${USERNAME} ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/${USERNAME} && \
    chmod 0440 /etc/sudoers.d/${USERNAME}

USER ${USERNAME}
WORKDIR /workspace

CMD ["pio", "run"]
