Режим запуска в Docker
Режим запуска сообщает программе,
что это рабочий старт, а не
правка кода.
Переменная NODE_ENV
попадает в process.env
и часто получает значение
production в образе
для выкладки.
Скрипт читает NODE_ENV
и отдаёт это слово на порту
3000:
const http = require('node:http');
const server = http.createServer((req, res) => {
res.end(process.env.NODE_ENV);
});
server.listen(3000, '0.0.0.0');
Значение задают в образе
строкой ENV.
Файл Dockerfile:
FROM node:24
WORKDIR /app
ENV NODE_ENV=production
COPY --chown=node:node server.js .
USER node
CMD ["node", "server.js"]
Сервис собирается из папки
и публикует порт 3000.
Файл compose.yaml:
services:
app:
build: .
ports:
- "3000:3000"
После подъёма страница покажет
слово production без
правки server.js.
Запуск проекта:
docker compose up -d --build
Опишите сервис mode, где NODE_ENV равно production и это слово видно в браузере на порту 3000.
Откройте localhost:3000 и сверьте текст страницы с заданным режимом.