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