From 1bbdcbe970175d3d2f51fa487c9352dafd91822d Mon Sep 17 00:00:00 2001 From: Ram Date: Sat, 29 Aug 2026 19:12:01 +0530 Subject: [PATCH] feat: Add DevContainer and Codespaces support - Add .devcontainer configuration for VS Code and Codespaces - Add xdebug to bewelcome_php_dev stage for local debugging --- .devcontainer/devcontainer.json | 56 ++++++++++++++++++++++++++ Dockerfile | 5 ++- docker/php/conf.d/bewelcome.xdebug.ini | 6 +++ 3 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 .devcontainer/devcontainer.json create mode 100644 docker/php/conf.d/bewelcome.xdebug.ini diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 000000000..6ff5aa4ae --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,56 @@ +{ + "name": "BeWelcome Rox (Docker Master)", + "dockerComposeFile": [ + "../docker-compose.yml", + "../docker-compose.override.yml.dist" + ], + "service": "php", + "workspaceFolder": "/srv/bewelcome", + "overrideCommand": false, + "forwardPorts": [80, 1080, 9306, 9308], + "portsAttributes": { + "80": { + "label": "BeWelcome App (Nginx)", + "onAutoForward": "openBrowser" + }, + "1080": { + "label": "MailCatcher Web UI", + "onAutoForward": "notify" + }, + "9306": { + "label": "Manticore MySQL protocol", + "onAutoForward": "silent" + }, + "9308": { + "label": "Manticore HTTP API", + "onAutoForward": "silent" + } + }, + "postCreateCommand": "bzip2 -ckd docker/languages.sql.bz2 > docker/db/languages.sql && bzip2 -ckd docker/words.sql.bz2 > docker/db/words.sql", + "customizations": { + "vscode": { + "extensions": [ + "bmewburn.vscode-intelephense-client", + "xdebug.php-debug", + "symfony-vscode.symfony-vscode", + "bradlc.vscode-tailwindcss", + "dbaeumer.vscode-eslint", + "esbenp.prettier-vscode", + "mikestead.dotenv", + "ms-azuretools.vscode-docker", + "GitHub.vscode-pull-request-github" + ], + "settings": { + "php.suggest.basic": false, + "editor.formatOnSave": true, + "editor.defaultFormatter": "esbenp.prettier-vscode", + "[php]": { + "editor.defaultFormatter": "bmewburn.vscode-intelephense-client" + }, + "intelephense.environment.phpVersion": "8.4.0", + "intelephense.files.maxSize": 5000000, + "xdebug.remote_enable": true + } + } + } +} diff --git a/Dockerfile b/Dockerfile index 6002873c6..0227b8873 100644 --- a/Dockerfile +++ b/Dockerfile @@ -187,4 +187,7 @@ ARG NODE_ENV=production RUN set -eux; \ apk add --no-cache \ make \ - mysql-client + mysql-client; \ + install-php-extensions xdebug + +COPY docker/php/conf.d/bewelcome.xdebug.ini $PHP_INI_DIR/conf.d/xdebug.ini diff --git a/docker/php/conf.d/bewelcome.xdebug.ini b/docker/php/conf.d/bewelcome.xdebug.ini new file mode 100644 index 000000000..cb05a630c --- /dev/null +++ b/docker/php/conf.d/bewelcome.xdebug.ini @@ -0,0 +1,6 @@ +; Xdebug configuration for development +; Disabled by default for performance. To enable, you can set XDEBUG_MODE=debug +xdebug.mode=off +xdebug.client_host=host.docker.internal +xdebug.start_with_request=yes +xdebug.discover_client_host=1