diff --git a/README.md b/README.md index 7dab715b166f7..89e847714fcbc 100644 --- a/README.md +++ b/README.md @@ -44,6 +44,39 @@ _Note_: Feel free to use the `nightly` tag to test the latest version, i.e. `git ``` - For additional possibilities, please consult the `Dockerfile` for OpenVSCode Server at https://github.com/gitpod-io/openvscode-releases/ +#### Pre-installing VSCode extensions + +You can pre-install vscode extensions in such a way: + +```dockerfile +FROM gitpod/openvscode-server:latest + +ENV OPENVSCODE_SERVER_ROOT="/home/.openvscode-server" +ENV OPENVSCODE="${OPENVSCODE_SERVER_ROOT}/bin/openvscode-server" + +SHELL ["/bin/bash", "-c"] +RUN \ + # Direct download links to external .vsix not available on https://open-vsx.org/ + # The two links here are just used as example, they are actually available on https://open-vsx.org/ + urls=(\ + https://github.com/rust-lang/rust-analyzer/releases/download/2022-12-26/rust-analyzer-linux-x64.vsix \ + https://github.com/VSCodeVim/Vim/releases/download/v1.24.3/vim-1.24.3.vsix \ + )\ + # Create a tmp dir for downloading + && tdir=/tmp/exts && mkdir -p "${tdir}" && cd "${tdir}" \ + # Download via wget from $urls array. + && wget "${urls[@]}" && \ + # List the extensions in this array + exts=(\ + # From https://open-vsx.org/ registry directly + gitpod.gitpod-theme \ + # From filesystem, .vsix that we downloaded (using bash wildcard '*') + "${tdir}"/* \ + )\ + # Install the $exts + && for ext in "${exts[@]}"; do ${OPENVSCODE} --install-extension "${ext}"; done +``` + ### Linux - [Download the latest release](https://github.com/gitpod-io/openvscode-server/releases/latest)