| { |
| "name": "Apache Iggy", |
| "hostRequirements": { |
| "cpus": 4, |
| "memory": "16gb", |
| "storage": "32gb" |
| }, |
| "build": { |
| "dockerfile": "Dockerfile", |
| "context": ".." |
| }, |
| "features": { |
| "ghcr.io/devcontainers/features/docker-outside-of-docker:1": { |
| "moby": false |
| } |
| }, |
| "remoteUser": "vscode", |
| "workspaceMount": "source=${localWorkspaceFolder},target=/workspaces/iggy,type=bind,consistency=cached", |
| "workspaceFolder": "/workspaces/iggy", |
| "runArgs": [ |
| "--init", |
| "--security-opt", "seccomp=unconfined", |
| "--ulimit", "memlock=-1:-1", |
| "--cap-add=SYS_NICE", |
| "--publish", "8080:8080/udp" |
| ], |
| "mounts": [ |
| "type=volume,source=iggy-cargo-registry,target=/usr/local/cargo/registry", |
| "type=volume,source=iggy-target,target=/workspaces/iggy/target" |
| ], |
| "containerEnv": { |
| "CARGO_BUILD_JOBS": "4", |
| "IGGY_HTTP_ADDRESS": "0.0.0.0:3000", |
| "IGGY_QUIC_ADDRESS": "0.0.0.0:8080", |
| "IGGY_TCP_ADDRESS": "0.0.0.0:8090", |
| "IGGY_WEBSOCKET_ADDRESS": "0.0.0.0:8092" |
| }, |
| "forwardPorts": [3000, 3050, 8080, 8090, 8092], |
| "portsAttributes": { |
| "3000": { "label": "HTTP (REST)" }, |
| "3050": { "label": "Web UI (vite dev)" }, |
| "8080": { "label": "QUIC" }, |
| "8090": { "label": "TCP (binary)" }, |
| "8092": { "label": "WebSocket" } |
| }, |
| "postCreateCommand": "sudo chown vscode:vscode target /usr/local/cargo/registry; rustup show && npm --prefix web ci && bash /workspaces/iggy/.devcontainer/notice.sh", |
| "customizations": { |
| "vscode": { |
| "extensions": [ |
| "rust-lang.rust-analyzer", |
| "tamasfe.even-better-toml", |
| "vadimcn.vscode-lldb", |
| "svelte.svelte-vscode", |
| "ms-azuretools.vscode-docker" |
| ], |
| "settings": { |
| "rust-analyzer.cargo.buildScripts.enable": true, |
| "rust-analyzer.procMacro.enable": true, |
| "rust-analyzer.numThreads": 4, |
| "rust-analyzer.cargo.extraEnv": { "CARGO_BUILD_JOBS": "4" }, |
| "editor.formatOnSave": true, |
| "[rust]": { |
| "editor.defaultFormatter": "rust-lang.rust-analyzer" |
| } |
| } |
| } |
| } |
| } |