new file mode 100644
@@ -0,0 +1,63 @@
+{
+ "name": "error-report-web (Django + MySQL)",
+ "dockerComposeFile": [
+ "../docker-compose.yaml",
+ "docker-compose.dev.yml"
+ ],
+ "service": "backend",
+ "workspaceFolder": "/app",
+ "shutdownAction": "stopCompose",
+ "remoteUser": "root",
+
+ // requirements.txt may have changed since the image was built.
+ "postCreateCommand": "pip install --no-cache-dir -r requirements.txt ruff==0.17.0 && python3 manage.py migrate --noinput",
+
+ "forwardPorts": [
+ 8000
+ ],
+
+ "customizations": {
+ "vscode": {
+ "extensions": [
+ "ms-python.python",
+ "ms-python.vscode-pylance",
+ "ms-python.debugpy",
+ "charliermarsh.ruff",
+ "batisteo.vscode-django",
+ "mtxr.sqltools",
+ "mtxr.sqltools-driver-mysql"
+ ],
+ "settings": {
+ "python.defaultInterpreterPath": "/usr/local/bin/python",
+ "python.terminal.activateEnvironment": false,
+ "remote.autoForwardPorts": false,
+ // Values from .env.dev.db.
+ "sqltools.connections": [
+ {
+ "mysqlOptions": {
+ "authProtocol": "default",
+ "enableSsl": "Disabled"
+ },
+ "previewLimit": 50,
+ "server": "db",
+ "port": 3306,
+ "driver": "MySQL",
+ "name": "errorreport",
+ "database": "errorreport",
+ "username": "errorreport",
+ "password": "testingpw"
+ }
+ ],
+ // Format changed lines only.
+ "editor.formatOnSaveMode": "modifications",
+ "[python]": {
+ "editor.defaultFormatter": "charliermarsh.ruff"
+ },
+ "files.exclude": {
+ "**/__pycache__": true,
+ "**/*.pyc": true
+ }
+ }
+ }
+ }
+}
new file mode 100644
@@ -0,0 +1,15 @@
+# Devcontainer override for docker-compose.yaml: runserver on the mounted
+# workspace, MySQL port unpublished (no clash with other dev DBs), no nginx.
+services:
+ backend:
+ command: ["python3", "manage.py", "runserver", "0.0.0.0:8000"]
+ restart: "no"
+ volumes:
+ - .:/app:cached
+
+ db:
+ restart: "no"
+ ports: !reset []
+
+ web:
+ profiles: [nginx]
Layered on docker-compose.yaml, as layerindex-web's is: runserver on the mounted workspace, MySQL unpublished, no nginx. Ruff formats changed lines only. AI-Generated: Claude Opus 5.5 Signed-off-by: Tim Orling <tim.orling@konsulko.com> --- .devcontainer/devcontainer.json | 63 ++++++++++++++++++++++++++++ .devcontainer/docker-compose.dev.yml | 15 +++++++ 2 files changed, 78 insertions(+) create mode 100644 .devcontainer/devcontainer.json create mode 100644 .devcontainer/docker-compose.dev.yml