Compare commits

...

1 Commits

Author SHA1 Message Date
chodak166 1d6f53cfb6 WIP: added Rust devcontainer 3 months ago
  1. 36
      rust/.devcontainer/Dockerfile
  2. 32
      rust/.devcontainer/devcontainer.json

36
rust/.devcontainer/Dockerfile

@ -0,0 +1,36 @@
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
# Set up cargo path
ENV PATH="/home/developer/.cargo/bin:${PATH}"
# Set default workspace directory
WORKDIR /workspace

32
rust/.devcontainer/devcontainer.json

@ -0,0 +1,32 @@
{
"name": "Rust Development",
"build": {
"dockerfile": "Dockerfile",
"args": {
"USER_UID": "${localEnv:UID:1000}",
"USER_GID": "${localEnv:GID:1000}"
}
},
"remoteUser": "developer",
"customizations": {
"vscode": {
"extensions": [
"rust-lang.rust-analyzer",
"fill-labs.dependi",
"vadimcn.vscode-lldb"
],
"settings": {
"rust-analyzer.checkOnSave": true
}
}
},
"runArgs": [
"--name",
"${localEnv:USER}-${localWorkspaceFolderBasename}-rust-dev",
"--mount",
"type=volume,source=vscode-extensions,target=/home/developer/.vscode-server/extensions"
],
"postStartCommand": "sudo chown -R $(id -u):$(id -g) ~/.vscode-server || true",
"workspaceMount": "source=${localWorkspaceFolder},target=/workspace,type=bind",
"workspaceFolder": "/workspace"
}
Loading…
Cancel
Save