Files
g0v0-server/.devcontainer/devcontainer.json

113 lines
3.8 KiB
JSON

{
"name": "OSU Lazer API",
"dockerComposeFile": "docker-compose.yml",
"service": "devcontainer",
"shutdownAction": "stopCompose",
"workspaceFolder": "/workspaces/osu_lazer_api",
"containerEnv": {
"MYSQL_DATABASE": "osu_api",
"MYSQL_USER": "osu_api",
"MYSQL_PASSWORD": "password",
"MYSQL_HOST": "mysql",
"MYSQL_PORT": "3306"
},
"runArgs": [
"--name",
"g0v0-devcontainer",
"--label",
"jetbrains-attach=true"
],
"customizations": {
"vscode": {
"extensions": [
"ms-python.python",
"detachhead.basedpyright",
"charliermarsh.ruff",
"ms-python.debugpy",
"ms-vscode.vscode-json",
"redhat.vscode-yaml",
"ms-vscode.docker",
"rust-lang.rust-analyzer",
"ms-dotnettools.csdevkit",
"ms-dotnettools.csharp",
"ms-dotnettools.vscode-dotnet-runtime",
"ms-dotnettools.blazorwasm-companion",
"editorconfig.editorconfig"
],
"settings": {
"python.defaultInterpreterPath": "/usr/local/bin/python",
"python.terminal.activateEnvironment": true,
"python.linting.enabled": true,
"python.linting.pylintEnabled": false,
"python.linting.flake8Enabled": false,
"python.formatting.provider": "none",
"[python]": {
"editor.defaultFormatter": "charliermarsh.ruff",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": "explicit"
}
},
"ruff.enable": true,
"ruff.lint.enable": true,
"ruff.format.enable": true,
"ruff.importStrategy": "fromEnvironment",
"files.exclude": {
"**/__pycache__": true,
"**/*.pyc": true
},
"python.testing.pytestEnabled": true,
"python.testing.unittestEnabled": false,
"python.testing.pytestArgs": [
"."
],
"terminal.integrated.defaultProfile.linux": "bash",
"rust-analyzer.server.path": "rust-analyzer",
"rust-analyzer.cargo.buildScripts.enable": true,
"rust-analyzer.procMacro.enable": true,
"[rust]": {
"editor.defaultFormatter": "rust-lang.rust-analyzer",
"editor.formatOnSave": true
},
"dotnet.defaultSolution": "/workspaces/osu_lazer_api/spectator-server/osu.Server.Spectator.sln",
"[csharp]": {
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": "explicit"
}
},
"dotnet.completion.showCompletionItemsFromUnimportedNamespaces": true,
"dotnet.inlayHints.enableInlayHintsForParameters": true,
"dotnet.inlayHints.enableInlayHintsForLiteralParameters": true,
"dotnet.inlayHints.enableInlayHintsForIndexerParameters": true,
"dotnet.inlayHints.enableInlayHintsForObjectCreationParameters": true,
"dotnet.inlayHints.enableInlayHintsForOtherParameters": true,
"dotnet.inlayHints.enableInlayHintsForTypes": true,
"dotnet.inlayHints.enableInlayHintsForImplicitVariableTypes": true,
"dotnet.inlayHints.enableInlayHintsForLambdaParameterTypes": true,
"dotnet.inlayHints.enableInlayHintsForImplicitObjectCreation": true
}
}
},
"features": {
"ghcr.io/va-h/devcontainers-features/uv:1": {},
"ghcr.io/devcontainers/features/rust:1": {
"version": "latest",
"profile": "default"
},
"ghcr.io/devcontainers/features/dotnet:2": {
"version": "8.0"
}
},
"forwardPorts": [
8000,
3306,
6379,
8086,
80,
8080
],
"postCreateCommand": "uv sync --dev && uv run alembic upgrade head && uv run pre-commit install && cd packages/msgpack_lazer_api && cargo check && cd ../../spectator-server && dotnet restore",
"remoteUser": "vscode"
}