Skip to content

Commit 15fe536

Browse files
authored
fix(universal): preserve login shell PATH for coder user (#332)
1 parent 9216fbf commit 15fe536

2 files changed

Lines changed: 18 additions & 10 deletions

File tree

images/universal/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@
44

55
## Description
66

7-
Microsoft's [Universal Dev Container Image](https://github.com/devcontainers/images/tree/main/src/universal) extended with a `coder` user.
7+
Microsoft's [Universal Dev Container Image](https://github.com/devcontainers/images/tree/main/src/universal) with the upstream `codespace` user renamed to `coder`. The image keeps the base shell environment while rewriting hardcoded home paths and preserving inherited `PATH` entries for Coder's injected tooling.

images/universal/ubuntu.Dockerfile

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,22 @@ RUN rm -R /opt/conda && \
1212
# Install Chrome for AI Browser Testing
1313
RUN yes | npx playwright install chrome
1414

15-
# Create `coder` user
16-
RUN userdel -r codespace && \
17-
useradd coder \
18-
--create-home \
19-
--shell=/bin/bash \
20-
--groups=docker \
21-
--uid=1000 \
22-
--user-group && \
23-
echo "coder ALL=(ALL) NOPASSWD:ALL" >>/etc/sudoers.d/nopasswd
15+
# Rename the upstream `codespace` user to `coder` so we preserve the
16+
# existing home directory and shell environment provided by the base image.
17+
RUN usermod -l coder codespace && \
18+
groupmod -n coder codespace && \
19+
usermod -d /home/coder -m coder && \
20+
usermod -aG docker,sudo coder && \
21+
sed -i \
22+
-e 's#/home/codespace#/home/coder#g' \
23+
-e 's#^export PATH=#export PATH=${PATH:+$PATH:}#' \
24+
/etc/profile.d/00-restore-env.sh && \
25+
sed -i \
26+
-e 's#codespace#coder#g' \
27+
-e 's#/home/codespace#/home/coder#g' \
28+
/etc/sudoers.d/codespace && \
29+
mv /etc/sudoers.d/codespace /etc/sudoers.d/coder && \
30+
echo "coder ALL=(ALL) NOPASSWD:ALL" >/etc/sudoers.d/nopasswd && \
31+
chmod 0440 /etc/sudoers.d/coder /etc/sudoers.d/nopasswd
2432

2533
USER coder

0 commit comments

Comments
 (0)