microsoft / MLOS

MLOS is a project to enable autotuning for systems.
https://microsoft.github.io/MLOS
MIT License
137 stars 64 forks source link

DevContainer fails to start on VSCode + MacOS #873

Open motus opened 9 hours ago

motus commented 9 hours ago

The problem seems to be: .devcontainer/scripts/prep-container-build: line 23: shuf: command not found

By default, shuf is not installed on MacOS - users have to do e.g. brew install coreutils to install it.

After installing coreutils, the build proceeds, but then fails with a different error. We'll have a separate issue for it.

Full log below:

[29 ms] Dev Containers 0.388.0 in VS Code 1.94.2 (384ff7382de624fb94dbaf6da11977bba1ecd427).
[29 ms] Start: Resolving Remote
[41 ms] Setting up container for folder or workspace: /Users/sergiym/devel/MLOS
[42 ms] Context: desktop-linux
[43 ms] Start: Check Docker is running
[43 ms] Start: Run: docker version
[65 ms] Client:
 Version:           27.2.0
 API version:       1.47
 Go version:        go1.21.13
 Git commit:        3ab4256
 Built:             Tue Aug 27 14:14:45 2024
 OS/Arch:           darwin/arm64
 Context:           desktop-linux

[65 ms] Server: Docker Desktop 4.34.3 (170107)
 Engine:
  Version:          27.2.0
  API version:      1.47 (minimum version 1.24)
  Go version:       go1.21.13
  Git commit:       3ab5c7d
  Built:            Tue Aug 27 14:15:41 2024
  OS/Arch:          linux/arm64
  Experimental:     false
 containerd:
  Version:          1.7.20
  GitCommit:        8fc6bcff51318944179630522a095cc9dbf9f353
 runc:
  Version:          1.1.13
  GitCommit:        v1.1.13-0-g58aa920
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
[68 ms] Start: Run: docker volume ls -q
[83 ms] Start: Run: docker ps -q -a --filter label=vsch.local.folder=/Users/sergiym/devel/MLOS --filter label=vsch.quality=stable
[99 ms] Start: Run: docker ps -q -a --filter label=devcontainer.local_folder=/Users/sergiym/devel/MLOS --filter label=devcontainer.config_file=/Users/sergiym/devel/MLOS/.devcontainer/devcontainer.json
[115 ms] Start: Run: docker ps -q -a --filter label=devcontainer.local_folder=/Users/sergiym/devel/MLOS
[130 ms] Start: Run: docker ps -q -a --filter label=devcontainer.local_folder=/Users/sergiym/devel/MLOS
[145 ms] Running Dev Containers CLI:   up --user-data-folder /Users/sergiym/Library/Application Support/Code/User/globalStorage/ms-vscode-remote.remote-containers/data --container-session-data-folder /tmp/devcontainers-8c35d82c-18c2-47c2-b8a6-6972c4f3b8171729035067217 --workspace-folder /Users/sergiym/devel/MLOS --workspace-mount-consistency cached --gpu-availability detect --id-label devcontainer.local_folder=/Users/sergiym/devel/MLOS --id-label devcontainer.config_file=/Users/sergiym/devel/MLOS/.devcontainer/devcontainer.json --log-level debug --log-format json --config /Users/sergiym/devel/MLOS/.devcontainer/devcontainer.json --default-user-env-probe loginInteractiveShell --mount type=volume,source=vscode,target=/vscode,external=true --skip-post-create --update-remote-user-uid-default on --mount-workspace-git-root --include-configuration --include-merged-configuration
[164 ms] ProxyResolver#loadSystemCertificates count
[165 ms] ProxyResolver#loadSystemCertificates count filtered
[165 ms] Start: Run: /Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Plugin).app/Contents/MacOS/Code Helper (Plugin) /Users/sergiym/.vscode/extensions/ms-vscode-remote.remote-containers-0.388.0/dist/spec-node/devContainersSpecCLI.js up --user-data-folder /Users/sergiym/Library/Application Support/Code/User/globalStorage/ms-vscode-remote.remote-containers/data --container-session-data-folder /tmp/devcontainers-8c35d82c-18c2-47c2-b8a6-6972c4f3b8171729035067217 --workspace-folder /Users/sergiym/devel/MLOS --workspace-mount-consistency cached --gpu-availability detect --id-label devcontainer.local_folder=/Users/sergiym/devel/MLOS --id-label devcontainer.config_file=/Users/sergiym/devel/MLOS/.devcontainer/devcontainer.json --log-level debug --log-format json --config /Users/sergiym/devel/MLOS/.devcontainer/devcontainer.json --default-user-env-probe loginInteractiveShell --mount type=volume,source=vscode,target=/vscode,external=true --skip-post-create --update-remote-user-uid-default on --mount-workspace-git-root --include-configuration --include-merged-configuration
[276 ms] @devcontainers/cli 0.71.0. Node.js v20.16.0. darwin 24.0.0 arm64.
[276 ms] Start: Run: docker buildx version
[418 ms] github.com/docker/buildx v0.16.2-desktop.1 081c21b9e461293ae243a1ff813a680a4f5f8fb9
[418 ms] 
[418 ms] Start: Run: docker -v
[429 ms] Start: Resolving Remote
[434 ms] Loading 29 extra certificates from /var/folders/kp/jd8fmmqd3clgld58441_g_v40000gn/T/vsch/certificates-4923716bdb9568154d418167e377b48d2637d62d665d3fbace955f17b92b86e0.pem.
Running the initializeCommand from devcontainer.json...

[488 ms] Start: Run: .devcontainer/scripts/prep-container-build 
+++ readlink -f .devcontainer/scripts/prep-container-build
++ dirname /Users/sergiym/devel/MLOS/.devcontainer/scripts/prep-container-build
+ scriptdir=/Users/sergiym/devel/MLOS/.devcontainer/scripts
+ cd /Users/sergiym/devel/MLOS/.devcontainer/scripts
+ cd ../../
+ '[' '!' -f .env ']'
+ '[' -e .devcontainer/.env ']'
++ shuf -i 0-30000 -n 1
.devcontainer/scripts/prep-container-build: line 23: shuf: command not found
+ NGINX_PORT=80
[519 ms] Error: Command failed: .devcontainer/scripts/prep-container-build 
[519 ms]     at HH (/Users/sergiym/.vscode/extensions/ms-vscode-remote.remote-containers-0.388.0/dist/spec-node/devContainersSpecCLI.js:482:15)
[519 ms]     at async TtA (/Users/sergiym/.vscode/extensions/ms-vscode-remote.remote-containers-0.388.0/dist/spec-node/devContainersSpecCLI.js:482:3710)
[519 ms]     at async iB (/Users/sergiym/.vscode/extensions/ms-vscode-remote.remote-containers-0.388.0/dist/spec-node/devContainersSpecCLI.js:482:4963)
[519 ms]     at async wrA (/Users/sergiym/.vscode/extensions/ms-vscode-remote.remote-containers-0.388.0/dist/spec-node/devContainersSpecCLI.js:663:203)
[519 ms]     at async DrA (/Users/sergiym/.vscode/extensions/ms-vscode-remote.remote-containers-0.388.0/dist/spec-node/devContainersSpecCLI.js:662:14830)
[519 ms]     at async /Users/sergiym/.vscode/extensions/ms-vscode-remote.remote-containers-0.388.0/dist/spec-node/devContainersSpecCLI.js:482:1190
[521 ms] Exit code 1
[523 ms] Command failed: /Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Plugin).app/Contents/MacOS/Code Helper (Plugin) /Users/sergiym/.vscode/extensions/ms-vscode-remote.remote-containers-0.388.0/dist/spec-node/devContainersSpecCLI.js up --user-data-folder /Users/sergiym/Library/Application Support/Code/User/globalStorage/ms-vscode-remote.remote-containers/data --container-session-data-folder /tmp/devcontainers-8c35d82c-18c2-47c2-b8a6-6972c4f3b8171729035067217 --workspace-folder /Users/sergiym/devel/MLOS --workspace-mount-consistency cached --gpu-availability detect --id-label devcontainer.local_folder=/Users/sergiym/devel/MLOS --id-label devcontainer.config_file=/Users/sergiym/devel/MLOS/.devcontainer/devcontainer.json --log-level debug --log-format json --config /Users/sergiym/devel/MLOS/.devcontainer/devcontainer.json --default-user-env-probe loginInteractiveShell --mount type=volume,source=vscode,target=/vscode,external=true --skip-post-create --update-remote-user-uid-default on --mount-workspace-git-root --include-configuration --include-merged-configuration
[523 ms] Exit code 1
motus commented 8 hours ago

By the way, why does it use shuf from the host OS instead of the Docker container? Looks a bit suspicious