diff --git a/.devcontainer/scripts/post_create.sh b/.devcontainer/scripts/post_create.sh index 50acf3b577..a1b774f98d 100755 --- a/.devcontainer/scripts/post_create.sh +++ b/.devcontainer/scripts/post_create.sh @@ -1,7 +1,11 @@ #!/bin/sh install_devcontainer_cli() { - npm install -g @devcontainers/cli@0.80.0 --integrity=sha512-w2EaxgjyeVGyzfA/KUEZBhyXqu/5PyWNXcnrXsZOBrt3aN2zyGiHrXoG54TF6K0b5DSCF01Rt5fnIyrCeFzFKw== + set -e + echo "🔧 Installing DevContainer CLI..." + cd "$(dirname "$0")/../tools/devcontainer-cli" + npm ci --omit=dev + ln -sf "$(pwd)/node_modules/.bin/devcontainer" "$(npm config get prefix)/bin/devcontainer" } install_ssh_config() { diff --git a/.devcontainer/tools/devcontainer-cli/package-lock.json b/.devcontainer/tools/devcontainer-cli/package-lock.json new file mode 100644 index 0000000000..2fee536abe --- /dev/null +++ b/.devcontainer/tools/devcontainer-cli/package-lock.json @@ -0,0 +1,26 @@ +{ + "name": "devcontainer-cli", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "devcontainer-cli", + "version": "1.0.0", + "dependencies": { + "@devcontainers/cli": "^0.80.0" + } + }, + "node_modules/@devcontainers/cli": { + "version": "0.80.0", + "resolved": "https://registry.npmjs.org/@devcontainers/cli/-/cli-0.80.0.tgz", + "integrity": "sha512-w2EaxgjyeVGyzfA/KUEZBhyXqu/5PyWNXcnrXsZOBrt3aN2zyGiHrXoG54TF6K0b5DSCF01Rt5fnIyrCeFzFKw==", + "bin": { + "devcontainer": "devcontainer.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + } + } +} diff --git a/.devcontainer/tools/devcontainer-cli/package.json b/.devcontainer/tools/devcontainer-cli/package.json new file mode 100644 index 0000000000..b474c86155 --- /dev/null +++ b/.devcontainer/tools/devcontainer-cli/package.json @@ -0,0 +1,8 @@ +{ + "name": "devcontainer-cli", + "private": true, + "version": "1.0.0", + "dependencies": { + "@devcontainers/cli": "^0.80.0" + } +}