FROM rust:bookworm

# toolchain and other development tools
RUN set -eux ; \
    useradd -ms /bin/bash net7212 ; \
    apt-get update ; \
    DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
      less dbus-x11 \
      gdb valgrind make bats check ltrace strace \
      clang clang-tidy \
      x11-apps \
      vim-gtk3 \
      emacs emacs-gtk elpa-rust-mode \
      gedit gedit-plugins

# vscode -- install
RUN set -eux ; \
    vscode_url="https://code.visualstudio.com/sha/download?build=stable&os=linux-deb-x64" ; \
    vscode_deb="vscode.deb" ; \
    wget -O "$vscode_deb" "$vscode_url" ; \
    DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
      ./"$vscode_deb" ; \
    rm -f ./"$vscode_deb"

# cleanup and diagnostic
RUN set -eux ; \
    apt-get clean ; \
    rustup --version ; \
    cargo --version ; \
    rustc --version

# do not run as root
USER net7212
WORKDIR /home/net7212

# vscode -- user configuration
RUN set -eux ; \
    code --install-extension rust-lang.rust-analyzer ; \
    code --install-extension vadimcn.vscode-lldb
