From 8d5deeeef02d0dc604fa868bf3e5250e291903b8 Mon Sep 17 00:00:00 2001 From: Alejandro Lembke Barrientos Date: Sun, 13 Apr 2025 00:51:32 +0000 Subject: [PATCH] Updating version of vscode and adding feature to restart. --- entrypoint.sh | 13 ++++++++++--- readme.md | 12 ++++++++++++ version.txt | 2 +- 3 files changed, 23 insertions(+), 4 deletions(-) diff --git a/entrypoint.sh b/entrypoint.sh index 65b3c2e..6e771c5 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -157,8 +157,15 @@ else echo "File extensions.json not found" fi -if [[ -v VSCODE_TUNNEL_NAME && -n "${VSCODE_TUNNEL_NAME}" ]]; then - sudo su ${HOME_USER} -c "code tunnel --accept-server-license-terms --name ${VSCODE_TUNNEL_NAME}" +# Check if CLI directory exists and has content +if [ -d "/home/${HOME_USER}/.vscode/cli" ] && [ "$(ls -A /home/${HOME_USER}/.vscode/cli 2>/dev/null)" ]; then + # CLI directory exists and has content, use restart + sudo su ${HOME_USER} -c "code tunnel restart" else - sudo su ${HOME_USER} -c "code tunnel --accept-server-license-terms" + # No CLI directory or empty, use normal startup + if [[ -v VSCODE_TUNNEL_NAME && -n "${VSCODE_TUNNEL_NAME}" ]]; then + sudo su ${HOME_USER} -c "code tunnel --accept-server-license-terms --name ${VSCODE_TUNNEL_NAME}" + else + sudo su ${HOME_USER} -c "code tunnel --accept-server-license-terms" + fi fi diff --git a/readme.md b/readme.md index b47da63..c276aa0 100644 --- a/readme.md +++ b/readme.md @@ -39,6 +39,15 @@ docker run -it -e HOME_USER=custom-home-user -e GLOBAL_ENV_MY_GLOBAL_VARIABLE=my ``` In this example, MY_GLOBAL_VARIABLE will be set to my_global_value in the /etc/environment file. +### Persistent VS Code Tunnel + +You can maintain the VS Code tunnel configuration between container restarts by adding a volume mount to `/home/${HOME_USER}/.vscode/cli`. When this volume is mounted and the container restarts, it will use `code tunnel restart` to reconnect using the existing tunnel configuration instead of creating a new one. + +Example: +```bash +docker run -it -e HOME_USER=custom-home-user -e VSCODE_TUNNEL_NAME=vscode-ssh-remote-server -v /path/to/vscode-cli:/home/custom-home-user/.vscode/cli -v /path/to/extensions.json:/home/extensions.json aleleba/vscode +``` + ### Adding VSCode Extensions To add VSCode extensions to the container, create a JSON file with an array of objects containing the extension details you want to install, the only Mandatory field is uniqueIdentifier and follow this structure. For example: @@ -170,6 +179,9 @@ RUN echo 'source ~/.nvm/nvm.sh' >> ~/.bashrc # Finishing installing node.js and NVM ``` + + + > **Note:** If you are using this image as a base image in a Dockerfile, ensure that the value of `HOME_USER` is the same as the one you will use when creating the container. This is necessary to ensure that all configurations and packages are installed in the correct user directory. > **Note:** To grant access to the server, please log into https://github.com/login/device and use the code XXXX-XXXX. You can view the container logs to get the code. diff --git a/version.txt b/version.txt index a52a6f1..944880f 100755 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.1.19 +3.2.0