В контейнере я на всякий случай выключаю post-install скрипты в pnpm. Это не абсолютная защиты (ещё есть импорты, плагины для ESLint и т. п.), но лучше явно запускать скрипты зависимостей, добавив инструкцию в README.md.
https://github.com/ai/environment/blob/main/devcontainer/Dockerfile#L20
У меня есть скрипт для сборки Dockerfile в образ с тегом localhost/ai-opensource.
https://github.com/ai/environment/blob/main/bin/build-devcontainer
В каждый проект я помещаю этот конфиг, он говорит редактору запустить папку внутри образа localhost/ai-opensource.
https://github.com/ai/environment/blob/main/devcontainer/devcontainer.json
Опенсорс-проектов у меня много, они все маленькие, там общий .devcontainer.json будет мешать (в отличие от больших рабочих проектов).
Поэтому этот конфиг я скрываю от git.
https://github.com/ai/environment/blob/main/zshrc#L133-L135
В больших рабочих проектах уже общий конфиг в git.
https://github.com/hplush/slowreader/blob/main/.devcontainer/podman/devcontainer.json
Конфиг .devcontainer.json — это не какая-то фишка VS Code.
Это открытый стандарт. Его поддерживает JetBrains и куча мелких инструментов.
https://containers.dev/supporting
И есть JS API, чтобы встроить его поддержку в любую среду.
Опенсорс-проектов у меня много, они все маленькие, там общий .devcontainer.json будет мешать (в отличие от больших рабочих проектов).
Поэтому этот конфиг я скрываю от git.
https://github.com/ai/environment/blob/main/zshrc#L133-L135
В больших рабочих проектах уже общий конфиг в git.
https://github.com/hplush/slowreader/blob/main/.devcontainer/podman/devcontainer.json