FROM rust:1.90.0

# Install basic development tools
RUN apt-get update && apt-get install -y \
    build-essential \
    gdb \
    git \
    procps \
    sudo \
    && rm -rf /var/lib/apt/lists/*

# Create developer user with host UID/GID
ARG USER_UID=1000
ARG USER_GID=1000
ENV USER_UID=${USER_UID:-1000}
ENV USER_GID=${USER_GID:-1000}
RUN groupadd -g $USER_GID developer \
    && useradd -u $USER_UID -g $USER_GID -m developer \
    && mkdir -p /workspace \
    && chown developer:developer /workspace

RUN echo 'developer ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers.d/developer \
    && chmod 0440 /etc/sudoers.d/developer

RUN mkdir -p /home/developer/.vscode-server \
    && chown -R developer:developer /home/developer/.vscode-server

# Switch to developer user
USER developer

RUN rustup component add rustfmt

# Set up cargo path
ENV PATH="/home/developer/.cargo/bin:${PATH}"

# Set default workspace directory
WORKDIR /workspace