Files
mscclpp/.devcontainer/Dockerfile
Changho Hwang c3b47c59fd Updated Dev Container (#591)
* Added more features in Dev Container
* Made it runnable on AMD platforms

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-08-01 13:39:03 -07:00

56 lines
1.7 KiB
Docker

ARG BASE_IMAGE
FROM ${BASE_IMAGE}
ARG USERNAME=devuser
ARG USER_UID=1000
ARG USER_GID=$USER_UID
ARG SSH_PORT=22345
# Create or modify the user
RUN if getent group $USER_GID > /dev/null; then \
EXISTING_GROUP=$(getent group $USER_GID | cut -d: -f1); \
if [ "$EXISTING_GROUP" != "$USERNAME" ]; then \
groupmod -n $USERNAME $EXISTING_GROUP; \
fi; \
else \
groupadd --gid $USER_GID $USERNAME; \
fi && \
if id -u $USER_UID > /dev/null 2>&1; then \
EXISTING_USER=$(getent passwd $USER_UID | cut -d: -f1); \
if [ "$EXISTING_USER" != "$USERNAME" ]; then \
usermod -l $USERNAME -d /home/$USERNAME -m $EXISTING_USER; \
fi; \
else \
useradd --uid $USER_UID --gid $USER_GID -m $USERNAME; \
fi && \
usermod -g $USERNAME $USERNAME && \
echo "$USERNAME ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
RUN rm -rf /etc/apt/sources.list.d/cuda-* && \
apt-get update && \
apt install -y --no-install-recommends \
clang-format \
openssh-server \
gdb \
doxygen \
graphviz \
&& \
apt-get autoremove -y && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/*
RUN python3 -m pip install --no-cache-dir \
black \
pytest \
breathe \
sphinx_rtd_theme \
myst_parser \
sphinxcontrib.mermaid
RUN sed -i "s/^Port 22/Port ${SSH_PORT}/" /etc/ssh/sshd_config && \
mkdir -p /home/$USERNAME/.ssh && \
ssh-keygen -t rsa -f /home/$USERNAME/.ssh/id_rsa -N "" -q && \
cat /home/$USERNAME/.ssh/id_rsa.pub >> /home/$USERNAME/.ssh/authorized_keys && \
chown -R $USERNAME:$USERNAME /home/$USERNAME/.ssh
USER $USERNAME