From 7564f05a9fd7669610bf60995283c400b66764fe Mon Sep 17 00:00:00 2001 From: johha Date: Wed, 8 Apr 2026 15:04:01 +0200 Subject: [PATCH] Modernize development environment setup This overhaul simplifies and unifies the local and devcontainer development experience with consistent tooling and clearer documentation. Key changes: Scripts (verb-first naming convention): - cc-containers: Manage Docker containers with profiles (dev, s3, full) - cc-db-env: Set DB_CONNECTION_STRING and CLOUD_CONTROLLER_NG_CONFIG Usage: eval "$(cc-db-env psql ccdb)" or eval "$(cc-db-env mysql test)" - cc-generate-config: Generate cloud_controller.yml with optional custom name Modes: local-temp-storage, local, storage-cli - cc-reset-db: Drop and recreate all databases - cc-setup-devcontainer: One-time setup for devcontainer/codespaces - cc-setup-ide: Copy IDE configs (VS Code, IntelliJ) - cc-install-storage-cli: Install storage-cli for S3 blobstore testing Docker Compose: - Add profiles: dev, s3, broker, diego, full - Add SeaweedFS for S3-compatible blobstore testing (local only) - Separate nginx configs for local vs devcontainer (different upstreams) - Use docker-outside-of-docker feature for devcontainer - Consistent COMPOSE_PROJECT_NAME to avoid container conflicts Configuration: - Generated configs use 127.0.0.1.nip.io (vcap.me no longer resolves) - Support local-temp-storage, local, and storage-cli blobstore modes - Custom config names for running multiple CC instances IDE configs: - Update IntelliJ run configs with STORAGE_CLI_PATH - Rename Mariadb configs to Mysql - Add VS Code extensions.json - Auto-copy run configs in devcontainer Documentation: - Rewrite README with quick start for both devcontainer and local - Document all helper scripts and environment variables - Keep detailed test configuration docs (DB_CONNECTION_STRING, etc.) - Add brew database option and ports reference Removes: devenv.sh, codespaces_*.sh, setupDevelopmentEnvironment.sh --- ...Unittests.xml => _Mysql__CC-Unittests.xml} | 4 +- .../{_Mariadb__CC.xml => _Mysql__CC.xml} | 5 +- ...Worker.xml => _Mysql__CC_Local_Worker.xml} | 5 +- ...Scheduler.xml => _Mysql__CC_Scheduler.xml} | 5 +- ...b__CC_Worker.xml => _Mysql__CC_Worker.xml} | 5 +- .../_Postgres__CC-Unittests.xml | 2 +- .../.idea/runConfigurations/_Postgres__CC.xml | 3 +- .../_Postgres__CC_Local_Worker.xml | 3 +- .../_Postgres__CC_Scheduler.xml | 3 +- .../_Postgres__CC_Worker.xml | 3 +- .../configs/vscode/.vscode/extensions.json | 11 + .../configs/vscode/.vscode/launch.json | 94 +++---- .../configs/vscode/.vscode/settings.json | 32 ++- .devcontainer/devcontainer.json | 37 ++- .devcontainer/docker-compose.override.yml | 18 +- .devcontainer/images/devcontainer/Dockerfile | 10 +- .devcontainer/images/devcontainer/setup.sh | 113 ++++++--- .../images/nginx/conf-devcontainer/nginx.conf | 54 ++++ .devcontainer/images/nginx/conf/nginx.conf | 3 + .devcontainer/images/seaweedfs/s3.json | 30 +++ .devcontainer/scripts/cc-containers | 41 ++++ .devcontainer/scripts/cc-db-env | 89 +++++++ .devcontainer/scripts/cc-generate-config | 101 ++++++++ .devcontainer/scripts/cc-install-storage-cli | 51 ++++ .devcontainer/scripts/cc-reset-db | 38 +++ .devcontainer/scripts/cc-setup-devcontainer | 33 +++ .devcontainer/scripts/cc-setup-ide | 37 +++ .devcontainer/scripts/codespaces_init.sh | 17 -- .devcontainer/scripts/codespaces_start.sh | 12 - .../scripts/setupDevelopmentEnvironment.sh | 115 --------- .devcontainer/scripts/setupIDEs.sh | 10 - .envrc | 54 +++- .gitignore | 6 + Gemfile | 1 + Gemfile.lock | 7 + README.md | 231 ++++++++++-------- devenv.sh | 121 --------- docker-compose.yml | 192 ++++++++------- 38 files changed, 1027 insertions(+), 569 deletions(-) rename .devcontainer/configs/intellij/.idea/runConfigurations/{_Mariadb__CC-Unittests.xml => _Mysql__CC-Unittests.xml} (94%) rename .devcontainer/configs/intellij/.idea/runConfigurations/{_Mariadb__CC.xml => _Mysql__CC.xml} (83%) rename .devcontainer/configs/intellij/.idea/runConfigurations/{_Mariadb__CC_Local_Worker.xml => _Mysql__CC_Local_Worker.xml} (87%) rename .devcontainer/configs/intellij/.idea/runConfigurations/{_Mariadb__CC_Scheduler.xml => _Mysql__CC_Scheduler.xml} (87%) rename .devcontainer/configs/intellij/.idea/runConfigurations/{_Mariadb__CC_Worker.xml => _Mysql__CC_Worker.xml} (87%) create mode 100644 .devcontainer/configs/vscode/.vscode/extensions.json create mode 100644 .devcontainer/images/nginx/conf-devcontainer/nginx.conf create mode 100644 .devcontainer/images/seaweedfs/s3.json create mode 100755 .devcontainer/scripts/cc-containers create mode 100755 .devcontainer/scripts/cc-db-env create mode 100755 .devcontainer/scripts/cc-generate-config create mode 100755 .devcontainer/scripts/cc-install-storage-cli create mode 100755 .devcontainer/scripts/cc-reset-db create mode 100755 .devcontainer/scripts/cc-setup-devcontainer create mode 100755 .devcontainer/scripts/cc-setup-ide delete mode 100755 .devcontainer/scripts/codespaces_init.sh delete mode 100755 .devcontainer/scripts/codespaces_start.sh delete mode 100755 .devcontainer/scripts/setupDevelopmentEnvironment.sh delete mode 100755 .devcontainer/scripts/setupIDEs.sh delete mode 100755 devenv.sh diff --git a/.devcontainer/configs/intellij/.idea/runConfigurations/_Mariadb__CC-Unittests.xml b/.devcontainer/configs/intellij/.idea/runConfigurations/_Mysql__CC-Unittests.xml similarity index 94% rename from .devcontainer/configs/intellij/.idea/runConfigurations/_Mariadb__CC-Unittests.xml rename to .devcontainer/configs/intellij/.idea/runConfigurations/_Mysql__CC-Unittests.xml index 940255d2369..a324d92d8d8 100644 --- a/.devcontainer/configs/intellij/.idea/runConfigurations/_Mariadb__CC-Unittests.xml +++ b/.devcontainer/configs/intellij/.idea/runConfigurations/_Mysql__CC-Unittests.xml @@ -1,5 +1,5 @@ - + @@ -22,7 +22,7 @@