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

Зависимости для запуска в Docker

Зависимости для запуска ставят без пакетов, которые нужны только при разработке. Список devDependencies может быть непустым в файле проекта, но в рабочий образ эти пакеты не попадают.

В package.json объект dependencies пуст, а в devDependencies лежит debug - сервер его не импортирует, значит для ответа он не нужен. Содержимое файла такое:

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

Скрипт слушает 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');

Шаг установки в Dockerfile вызывает npm install с флагом --omit=dev, поэтому debug в слой не кладётся:

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

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

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

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

docker compose up -d --build

Опишите сервис api с eslint только в devDependencies и установкой npm при сборке без dev-пакетов.

Пересоберите образ и проверьте ответ на порту 3000.

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