make compatible with openvscode-server

This commit is contained in:
aptalca
2022-09-05 22:01:10 -04:00
parent 7712135054
commit db6f2d2fcb
3 changed files with 26 additions and 11 deletions
+16 -4
View File
@@ -1,9 +1,21 @@
# Extension Arguments - Docker mod for code-server
# Extension Arguments - Docker mod for code-server/openvscode-server
This mod installs code-server/openvscode-server extensions at startup. The list of extensions to be installed should be provided using environment variable `VSCODE_EXTENSION_IDS` separated by `|`.
__NOTE__:
Since transitioning from `v3.12.0` to `v4.0.x` `code-server` has been forced to use a new Extensions Gallery / Marketplace. This results in a smaller set of plugins being available to install. Please take this into account before opening an Issue!
A workaround for this is to use the environment variable `EXTENSIONS_GALLERY` to provide a different marketplace URL. The commandline installer used by this plugin will also use the marketplace provided by this variable.
Please refer to the [code-server FAQ](https://github.com/coder/code-server/blob/main/docs/FAQ.md#how-do-i-use-my-own-extensions-marketplace) for additional information.
This mod installs code-server extensions at startup. The list of extensions to be installed should be provided using environment variable `VSCODE_EXTENSION_IDS` separated by `|`.
For example, to install the `vscode-docker` and `vscode-icons` extensions add the following lines to your docker compose service:
```yaml
- DOCKER_MODS=linuxserver/mods:code-server-docker|linuxserver/mods:code-server-extension-arguments
- VSCODE_EXTENSION_IDS=vscode-icons-team.vscode-icons|ms-azuretools.vscode-docker
environment:
DOCKER_MODS: 'linuxserver/mods:code-server-docker|linuxserver/mods:code-server-extension-arguments'
VSCODE_EXTENSION_IDS: 'vscode-icons-team.vscode-icons|ms-azuretools.vscode-docker'
## Optionally use a different marketplace if required extensions are unavailable. e.g.:
# EXTENSIONS_GALLERY: '{"serviceUrl": "https://extensions.coder.com/api"}'
# EXTENSIONS_GALLERY: '{"serviceUrl": "https://open-vsx.org/vscode/gallery", "itemUrl": "https://open-vsx.org/vscode/item"}'
```
+9 -4
View File
@@ -6,10 +6,15 @@ if [ -z ${VSCODE_EXTENSION_IDS+x} ]; then
exit 0
fi
IFS='|'
VSCODE_EXTENSION_IDS=(${VSCODE_EXTENSION_IDS})
for ID in "${VSCODE_EXTENSION_IDS[@]}"; do
echo "**** installing extension: ${ID} ****"
# Use newly available abstraction if available (>= v4.0.x), else fallback to old method.
if [ -x "$(command -v install-extension)" ]; then
for ID in "${VSCODE_EXTENSION_IDS[@]}"; do
install-extension ${ID}
done
else
for ID in "${VSCODE_EXTENSION_IDS[@]}"; do
s6-setuidgid abc code-server --user-data-dir /config/data --extensions-dir /config/extensions --install-extension ${ID}
done
done
fi
@@ -6,10 +6,8 @@ if [ -z ${VSCODE_EXTENSION_IDS+x} ]; then
exit 0
fi
IFS='|'
VSCODE_EXTENSION_IDS=(${VSCODE_EXTENSION_IDS})
for ID in "${VSCODE_EXTENSION_IDS[@]}"; do
echo "**** installing extension: ${ID} ****"
s6-setuidgid abc code-server --user-data-dir /config/data --extensions-dir /config/extensions --install-extension ${ID}
install-extension ${ID}
done