РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗dcNdApNi 7 of 39 menu
◀ ▶

Установка зависимостей в Docker

Установка зависимостей читает файл проекта во время сборки и кладёт пакеты в образ. Даже при пустом списке dependencies шаг npm install создаёт каталог пакетов внутри шаблона.

Сначала в образ попадает только package.json, затем идёт установка, и уже после - server.js. Так слой с пакетами не пересобирается при каждой правке кода сервера. Файл шагов такой:

FROM node:24 WORKDIR /app COPY package.json . RUN npm install COPY server.js . CMD ["node", "server.js"]

Скрипт server.js слушает 0.0.0.0 и отдаёт hello:

const http = require('node:http'); const server = http.createServer((req, res) => { res.end('hello'); }); server.listen(3000, '0.0.0.0');

Содержимое package.json без сторонних пакетов:

{ "name": "app", "scripts": { "start": "node server.js" }, "dependencies": {} }

Сервис по-прежнему собирается из точки и публикует порт 3000. Файл compose.yaml не меняет имя готового образа:

services: app: build: . ports: - "3000:3000"

После пересборки страница на localhost:3000 покажет hello. Запуск с пересборкой:

docker compose up -d --build

Добавьте в шаблон сервиса lab шаг установки npm перед копированием server.js.

Пересоберите проект и убедитесь, что ответ на порту 3000 не изменился.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить