Introduce devcontainer service container based development environment (#705)#706
Conversation
There was a problem hiding this comment.
Pull request overview
This PR migrates the repo’s development workflow to a single devcontainer-centric environment that orchestrates supporting service containers via Docker-from-Docker, updating scripts, Compose files, and contributor docs accordingly.
Changes:
- Add a
devcontainerimage (with wrapper CLIs) and new Compose layout (docker-compose.base.yml+ generateddocker-compose.yml). - Introduce
setup.sh+docker/build-docker-images.shto generate config files and build images. - Consolidate Playwright configuration into
.envand update contribution/testing documentation.
Reviewed changes
Copilot reviewed 16 out of 25 changed files in this pull request and generated 12 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/playwright/env/parseDotEnvFile.ts | Switch Playwright env parsing from .env.playwright to .env. |
| src/docs/contribute/testing-guidelines.md | Update test-running guidance for the new container-agnostic workflow. |
| src/docs/contribute/general-guidelines.md | Rewrite development environment docs around the devcontainer model. |
| setup.sh | New host-side setup script to generate .env and docker-compose.yml and build images. |
| package.json | Remove postinstall env-file bootstrap. |
| docker/react_ui_devcontainer_local/Dockerfile.dist | Add template for locally extending the devcontainer image. |
| docker/react_ui_devcontainer/files/usr/local/bin/* | Add wrapper scripts (npm/node/npx/mkdocs + AI tool shims) to route commands into service containers. |
| docker/react_ui_devcontainer/files/usr/local/bin/docker-entrypoint | Add entrypoint that runs fixuid and home ownership setup. |
| docker/react_ui_devcontainer/files/home/developer/shell-init.sh | Add SSH-agent forwarding blocking helper. |
| docker/react_ui_devcontainer/Dockerfile | Add new devcontainer image build. |
| docker/build-docker-images.sh | Add helper to build the devcontainer image and compose services. |
| docker-compose.yml.dist | Add dist template for generated docker-compose.yml. |
| docker-compose.yml | Remove old compose file (now generated). |
| docker-compose.base.yml | Add new base compose defining devcontainer + node/playwright/docs services. |
| CLAUDE.md | Update assistant guidance to assume devcontainer usage. |
| .gitignore | Ignore generated compose + local devcontainer customization dir; stop ignoring .env.playwright. |
| .env.playwright.dist | Remove dedicated Playwright env template. |
| .env.dist | Expand .env.dist to include compose/devcontainer + Playwright settings. |
| .devcontainer/devcontainer.json | Add Dev Container configuration to bootstrap via setup.sh. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
298b4ce to
cae210f
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 16 out of 25 changed files in this pull request and generated 4 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 16 out of 25 changed files in this pull request and generated 6 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
adamkudrna
left a comment
There was a problem hiding this comment.
I have a lot of comments, but I really like it! You have done a great job 👏🏻.
adamkudrna
left a comment
There was a problem hiding this comment.
Here are a few points by Claude. I believe they are relevant.
(Once you rebase the branch, we can try asking Claude to do CR right here, just by adding the claude label.)
|
@claude make code review. |
c104400 to
cdc0490
Compare
ffa1c40 to
1cdc6c2
Compare
adamkudrna
left a comment
There was a problem hiding this comment.
You have done a great job @bedrich-schindler 👏🏻.
- Docs are clear and understandable.
- I tested the default mode and auto-start mode, both OK.
- I successfully started Claude (but stopped before logging in).
- I did not test any customization features.
- Only issue I have observed so far is the missing Git intergration in my Jetbrains.
Can't wait to start using it!
e51a1da to
0c74345
Compare
…ent (#705) All development is now done inside the container named `devcontainer` which contains all necessary tools and dependencies. The devcontainer orchestrates other service containers behind the scenes via Docker-from-Docker. Other containers are implementation details and should not be accessed directly. This is breaking change commit for development environment, so it is required to remove all the env files and start with fresh one. There are two supported ways to access the development environment. Recommended way is to use Development Containers with an IDE. The alternative is to use Docker Compose directly. Local development is officially no more supported. What more, documentation of contribution and CLAUDE.md was updated to match with the changes.
0c74345 to
869d441
Compare
All development is now done inside the container named
devcontainerwhich contains all necessary tools and dependencies. The devcontainer orchestrates other service containers behind the scenes via Docker-from-Docker. Other containers are implementation details and should not be accessed directly.This is breaking change commit for development environment, so it is required to remove all the env files and start with fresh one.
There are two supported ways to access the development environment. Recommended way is to use Development Containers with an IDE. The alternative is to use Docker Compose directly. Local development is officially no more supported.
What more, documentation of contribution and CLAUDE.md was updated to match with the changes.
Closes #705