// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at: // https://github.com/microsoft/vscode-dev-containers/tree/v0.238.0/containers/python-3-postgres // Update the VARIANT arg in docker-compose.yml to pick a Python version { "name": "NetBox Plugin Development", "dockerComposeFile": [ "docker-compose.yml", "docker-compose.override.yml" ], "service": "netbox", //"workspaceMount": "source=${localWorkspaceFolder},target=/opt/netbox/netbox/netbox-acls,type=bind,consistency=cached", "workspaceFolder": "/opt/netbox/netbox/netbox-acls", "overrideCommand":false, // Configure tool-specific properties. "customizations": { // Configure properties specific to VS Code. "vscode": { // Set *default* container specific settings.json values on container create. "settings": { "editor.experimental.stickyScroll.enabled": true, //"[python]": { // "editor.codeActionsOnSave": { // "source.organizeImports": true // } //}, "isort.args": [ "--profile=black" ], "isort.path": "/opt/netbox/venv/bin/isort", "python.analysis.typeCheckingMode": "strict", python.Jedi "python.analysis.extraPaths": [ "/opt/netbox/netbox" ], "python.autoComplete.extraPaths": [ "/opt/netbox/netbox" ], "python.defaultInterpreterPath": "/opt/netbox/venv/bin/python3", "python.formatting.autopep8Path": "/opt/netbox/venv/bin/autopep8", "python.formatting.blackPath": "/opt/netbox/venv/bin/black", "python.formatting.provider": "black", "python.formatting.yapfPath": "/opt/netbox/venv/bin/yapf", "python.linting.banditPath": "/opt/netbox/venv/bin/bandit", "python.linting.enabled": true, "python.linting.flake8Path": "/opt/netbox/venv/bin/flake8", "python.linting.flake8Args": [ "--max-line-length=160", "--ignore=E203" ], "python.linting.mypyPath": "//opt/netbox/venv/bin/mypy", "python.linting.pycodestylePath": "/opt/netbox/venv/bin/pycodestyle", "python.linting.pydocstylePath": "/opt/netbox/venv/bin/pydocstyle", "python.linting.pylintArgs": [ "--load-plugins", "pylint_django", "--errors-only", "--load-plugins=pylint_django", "--django-settings-module=/opt/netbox/netbox/netbox/netbox.settings", "--enable=W0602,W0611,W0612,W0613,W0614" ], "python.linting.pylintEnabled": true, "python.linting.pylintPath": "/opt/netbox/venv/bin/pylint", "python.linting.lintOnSave": true, "python.pythonPath": "/opt/netbox/venv/bin/python3", "python.terminal.activateEnvironment": true, "python.venvPath": "/opt/netbox/", "files.exclude": { "**/node_modules": true, "build": true, "dist": true, "*egg*": true } }, // Add the IDs of extensions you want installed when the container is created. "extensions": [ "DavidAnson.vscode-markdownlint", "GitHub.codespaces", "GitHub.vscode-pull-request-github", "Tyriar.sort-lines", "aaron-bond.better-comments", "batisteo.vscode-django", "codezombiech.gitignore", "esbenp.prettier-vscode", "formulahendry.auto-rename-tag", "mintlify.document", "ms-python.python", "ms-python.vscode-pylance", "mutantdino.resourcemonitor", "paulomenezes.duplicated-code", "searKing.preview-vscode", "sourcery.sourcery" ] } }, // Use 'forwardPorts' to make a list of ports inside the container available locally. // This can be used to network with other containers or the host. // "forwardPorts": [5000, 5432], // Use 'postCreateCommand' to run commands after the container is created. // "postCreateCommand": "pip install --user -r requirements-dev.txt", //"postAttachCommand": "source /opt/netbox/venv/bin/activate", // Comment out to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root. "remoteUser": "vscode" }