From 133e527672be4851f81e19f164cbffd26c92ceaf Mon Sep 17 00:00:00 2001 From: chiDT Date: Mon, 8 Sep 2025 21:00:26 +0900 Subject: [PATCH] Change code-server to per-user installation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Remove system-wide code-server installation from Dockerfile - Install code-server per-user on first run in entrypoint.sh - Provides better security and user isolation - Each user gets their own code-server configuration 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- Dockerfile | 4 +--- entrypoint.sh | 6 ++++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index b8d5a7b..abbdaa5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -95,9 +95,7 @@ RUN echo "TZ=Asia/Seoul" >> /etc/environment && \ echo "XMODIFIERS=@im=fcitx" >> /etc/environment -## code server -RUN curl -fsSL https://code-server.dev/install.sh | sh -RUN which code-server && code-server --version +# code server will be installed per-user in entrypoint.sh EXPOSE 3389 ENTRYPOINT /entrypoint.sh diff --git a/entrypoint.sh b/entrypoint.sh index 5527a01..34a3b8e 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -57,6 +57,12 @@ set -e # clean chromium config for fresh start su - $XWINDOW_USER -c "rm -rf ~/.config/chromium/" +# install code-server for user if not exists +if ! su - $XWINDOW_USER -c "which code-server" >/dev/null 2>&1; then + echo "Installing code-server for user $XWINDOW_USER..." + su - $XWINDOW_USER -c "curl -fsSL https://code-server.dev/install.sh | sh -s -- --method standalone" +fi + # start code-server in background su - $XWINDOW_USER -c "code-server --bind-addr 0.0.0.0:30145 --auth password /mnt" &