Skip to content

Commit d7ba1c4

Browse files
fix: install extensions under remote user not root user
1 parent 1379558 commit d7ba1c4

File tree

3 files changed

+17
-9
lines changed

3 files changed

+17
-9
lines changed

src/code-server/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,4 +53,4 @@ VS Code in the browser ([code-server](https://github.com/coder/code-server))
5353

5454
---
5555

56-
_Note: This file was auto-generated from the [devcontainer-feature.json](https://github.com/coder/devcontainer-features/blob/main/src/code-server/devcontainer-feature.json). Add additional notes to a `NOTES.md`._
56+
_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._

src/code-server/install.sh

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,17 @@ fi
99

1010
curl -fsSL https://code-server.dev/install.sh | sh -s -- $CODE_SERVER_INSTALL_ARGS
1111

12-
IFS=',' read -ra extensions <<<"$EXTENSIONS"
12+
if [[ -n "$EXTENSIONS" ]]; then
13+
IFS=',' read -ra extensions <<<"$EXTENSIONS"
1314

14-
for extension in "${extensions[@]}"
15-
do
16-
code-server --install-extension "$extension"
17-
done
15+
for extension in "${extensions[@]}"
16+
do
17+
if ! su "$_REMOTE_USER" -c "code-server --install-extension '$extension'"; then
18+
echo "ERROR: Failed to install extension '$extension' as user '$_REMOTE_USER'" >&2
19+
exit 1
20+
fi
21+
done
22+
fi
1823

1924
CODE_SERVER_WORKSPACE="$_REMOTE_USER_HOME"
2025

test/code-server/code-server-extensions.sh

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,13 @@ check "code-server version" code-server --version
99
check "code-server running" pgrep -f 'code-server/lib/node.*/code-server'
1010
check "code-server listening" lsof -i "@0.0.0.0:8080"
1111

12-
extensions=$(sudo code-server --list-extensions)
12+
# Verify extensions are installed under the remoteUser's home, not root's.
13+
# See: https://github.com/coder/devcontainer-features/issues/18
14+
extensions_dir=/home/vscode/.local/share/code-server/extensions
1315

14-
check "code-server extensions [rust-lang.rust-analyzer]" grep 'rust-lang.rust-analyzer\>' <<<"$extensions"
15-
check "code-server extensions [ms-python.python]" grep 'ms-python.python\>' <<<"$extensions"
16+
check "rust-analyzer installed under remoteUser" ls "$extensions_dir"/rust-lang.rust-analyzer-*
17+
check "python installed under remoteUser" ls "$extensions_dir"/ms-python.python-*
18+
check "extensions not installed under root" test ! -d /root/.local/share/code-server/extensions
1619

1720
# Report results
1821
reportResults

0 commit comments

Comments
 (0)