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