ublue-forge/.devcontainer/devcontainer.json

100 lines
3.7 KiB
JSON
Raw Normal View History

// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/alpine
{
"name": "ublue-os/forge",
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
"image": "mcr.microsoft.com/devcontainers/base:alpine-3.17",
// Set `remoteUser` to `root` to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
"remoteUser": "vscode",
// podman needs this
"containerUser": "vscode",
"runArgs": [
// run container as current user
"--userns=keep-id",
// disable selinux isolation that breaks bind mounts
"--security-opt=label=disable"
],
// Configure environment variables
"containerEnv": {
"POETRY_VIRTUALENVS_CREATE": "false",
"POETRY_VERSION": "1.3.1"
},
"remoteEnv": {
// Add path for packages installed with poetry
"PATH": "${containerEnv:PATH}:/home/vscode/.local/bin:/home/vscode/.local/pipx/venvs/poetry/bin"
},
// Mounts from host system
"mounts": [
"source=/run/user/${localEnv:UID:1000}/podman/podman.sock,target=/run/podman/podman.sock,type=bind"
],
// Install DevTools
"postCreateCommand": "bash ./.devcontainer/install-dev-tools.sh",
// Configure tool-specific properties.
"customizations": {
"vscode": {
"settings": {
"terminal.integrated.profiles.linux": {
"zsh": {
"path": "zsh",
"args": ["-l"]
}
},
"terminal.integrated.defaultProfile.linux": "zsh",
"terminal.integrated.automation.linux": "zsh",
"terminal.integrated.automationProfile.linux": { "path": "zsh" },
"editor.suggestSelection": "first",
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true,
"editor.formatOnPaste": true,
"files.associations": {
"**/ansible/**/*.yml": "ansible"
},
"[ansible]": {
"editor.defaultFormatter": "redhat.ansible",
"editor.formatOnPaste": true,
"editor.insertSpaces": true,
"editor.tabSize": 2
},
// "ansible.ansible.path": "/home/vscode/.local/bin/ansible",
// "ansible.python.interpreterPath": "/usr/local/bin/python3",
"ansible.ansible.useFullyQualifiedCollectionNames": true,
"ansible.ansibleLint.enabled": true,
// "ansible.ansibleLint.path": "/home/vscode/.local/bin/ansible-lint",
"ansible.ansibleLint.arguments": "-c ${containerWorkspaceFolder}/ansible/.ansible-lint",
"cSpell.customDictionaries": {
"project-words": {
"name": "custom-dictionary",
"path": "${workspaceFolder}/.vscode/cspell_custom.txt",
"description": "Words used in this project",
"addWords": true
},
"custom": true,
"internal-terms": false
},
"docker.host": "unix:///run/podman/podman.sock",
"peacock.affectActivityBar": false,
"peacock.affectStatusBar": true,
"peacock.affectTitleBar": false,
"peacock.surpriseMeOnStartup": false
},
"extensions": [
"bungcip.better-toml",
"DavidAnson.vscode-markdownlint",
"esbenp.prettier-vscode",
"GitHub.vscode-pull-request-github",
"Gruntfuggly.todo-tree",
"jamesls.jmespath-vscode",
"kokakiwi.vscode-just",
"ms-azuretools.vscode-docker",
"ms-kubernetes-tools.vscode-kubernetes-tools",
"nico-castell.linux-desktop-file",
"redhat.ansible",
"redhat.vscode-yaml",
"samuelcolvin.jinjahtml",
"shakram02.bash-beautify",
"streetsidesoftware.code-spell-checker"
]
}
}
}