ark-invest-api-rust/.devcontainer/devcontainer.json
2024-10-02 12:52:10 -07:00

83 lines
No EOL
2.8 KiB
JSON
Executable file

// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/rust
// https://containers.dev/implementors/json_reference/#variables-in-devcontainerjson
{
"name": "Rust",
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
// "image": "mcr.microsoft.com/devcontainers/rust:0-1-bullseye",
"build": {
// Path is relataive to the devcontainer.json file.
"dockerfile": "Dockerfile"
},
// https://github.com/microsoft/vscode-remote-release/issues/2485#issuecomment-1156342780
"runArgs": [
"--name",
"devcontainer-${containerWorkspaceFolderBasename}"
],
"initializeCommand": "docker rm -f devcontainer-${containerWorkspaceFolderBasename} || true",
// Use 'mounts' to make the cargo cache persistent in a Docker Volume.
"mounts": [
{
// "source": "devcontainer-cargo-cache-${devcontainerId}",
"source": "devcontainer-cargo-cache-${containerWorkspaceFolderBasename}",
"target": "/usr/local/cargo",
"type": "volume"
},
{
"source": "${localWorkspaceFolderBasename}-target",
"target": "${containerWorkspaceFolder}/target",
"type": "volume"
},
{
"source": "nix-store",
"target": "/nix/store",
"type": "volume"
}
],
// Features to add to the dev container. More info: https://containers.dev/features.
"features": {
"ghcr.io/devcontainers/features/git:1": {},
"ghcr.io/devcontainers/features/docker-in-docker": {},
"ghcr.io/devcontainers/features/nix:1": {
"packages": [
"btop",
"lazygit",
"cargo-nextest",
"nixpkgs-fmt"
],
"extraNixConfig": "experimental-features = nix-command flakes"
}
},
// Use 'forwardPorts' to make a list of ports inside the container available locally.
// "forwardPorts": [],
// Use 'postCreateCommand' to run commands after the container is created.
// "postCreateCommand": {
// },
"postAttachCommand": {
"AddGitSafeDir": "git config --global --add safe.directory /workspaces/${containerWorkspaceFolderBasename}",
"update": "rustup target add x86_64-unknown-linux-musl && rustup update && cargo update",
"clippy": "cargo clippy --fix --allow-dirty",
"nix flake update": "nix flake update"
},
// Configure tool-specific properties.
// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
"remoteUser": "root",
"customizations": {
"vscode": {
"extensions": [
"vadimcn.vscode-lldb",
"serayuzgur.crates",
"tamasfe.even-better-toml",
"rust-lang.rust-analyzer",
"mutantdino.resourcemonitor",
"christian-kohler.path-intellisense",
"Gruntfuggly.todo-tree",
"ms-azuretools.vscode-docker",
"redhat.vscode-yaml",
"GitHub.copilot",
"GitHub.copilot-chat",
"jnoortheen.nix-ide"
]
}
}
}