Compare commits

...

10 Commits

4 changed files with 33 additions and 16 deletions

@ -1,4 +1,4 @@
name: Build and Push Docker Images name: Build and Push Docker Image ARM64
on: on:
push: push:
@ -7,26 +7,24 @@ on:
jobs: jobs:
docker: docker:
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy:
matrix:
platform: [amd64, arm64]
steps: steps:
- name: Checkout -
name: Checkout
uses: actions/checkout@v2 uses: actions/checkout@v2
-
- name: Set up Docker Buildx name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1 uses: docker/setup-buildx-action@v1
-
- name: Login to DockerHub name: Login to DockerHub
uses: docker/login-action@v1 uses: docker/login-action@v1
with: with:
username: ${{ secrets.DOCKERHUB_USERNAME }} username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }} password: ${{ secrets.DOCKERHUB_TOKEN }}
-
- name: Build and push name: Build and push
uses: docker/build-push-action@v2 uses: docker/build-push-action@v2
with: with:
context: . context: .
push: true push: true
tags: aleleba/vscode:latest tags: aleleba/vscode:latest
platforms: linux/${{ matrix.platform }} platforms: linux/amd64,linux/arm64

@ -157,8 +157,15 @@ else
echo "File extensions.json not found" echo "File extensions.json not found"
fi fi
# 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
# No CLI directory or empty, use normal startup
if [[ -v VSCODE_TUNNEL_NAME && -n "${VSCODE_TUNNEL_NAME}" ]]; then 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}" sudo su ${HOME_USER} -c "code tunnel --accept-server-license-terms --name ${VSCODE_TUNNEL_NAME}"
else else
sudo su ${HOME_USER} -c "code tunnel --accept-server-license-terms" sudo su ${HOME_USER} -c "code tunnel --accept-server-license-terms"
fi fi
fi

@ -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. 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 ### 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: 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 # 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:** 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. > **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.

@ -1 +1 @@
3.1.12 3.2.0