На главную

Контейнеры и CI/CD

Окружение разработки в контейнере

Окружение разработки в контейнере: devcontainer.json со стеком, пробросом портов и расширениями редактора, при желании — docker-compose с базой данных рядом.

Проект

Через запятую, пусто — порт стека

Пусто — «npm ci»

Идентификаторы через запятую

Что добавить внутрь

Файлы

.devcontainer/devcontainer.json

{
  "name": "project",
  "image": "mcr.microsoft.com/devcontainers/javascript-node:1-22-bookworm",
  "features": {
    "ghcr.io/devcontainers/features/git:1": {}
  },
  "forwardPorts": [
    3000
  ],
  "portsAttributes": {
    "3000": {
      "label": "Приложение",
      "onAutoForward": "notify"
    }
  },
  "postCreateCommand": "npm ci",
  "customizations": {
    "vscode": {
      "extensions": [
        "dbaeumer.vscode-eslint",
        "esbenp.prettier-vscode"
      ],
      "settings": {
        "editor.formatOnSave": true,
        "files.eol": "\n"
      }
    }
  },
  "remoteUser": "vscode"
}

Папка .devcontainer лежит в корне репозитория. VS Code и GitHub Codespaces поднимут окружение сами, порты из forwardPorts пробросятся на хост, а postCreateCommand выполнится один раз — после создания контейнера, а не при каждом запуске.