Файл зависимостей в Docker
Файл зависимостей называет проект
и команду старта, даже если
сторонних пакетов ещё нет.
package.json хранит имя
приложения и скрипты, а объект
dependencies пока остаётся
пустым.
Скрипт start указывает
на server.js через
node server.js.
HTTP-код не меняется:
порт 3000 и ответ
hello на все запросы.
Содержимое package.json:
{
"name": "app",
"scripts": {
"start": "node server.js"
},
"dependencies": {}
}
Файл server.js рядом
с описанием такой же,
как при сборке образа:
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"]
Сервис собирается из папки
и публикует пару
3000:3000.
Файл compose.yaml:
services:
app:
build: .
ports:
- "3000:3000"
Подъём с пересборкой проверит,
что образ отдаёт hello
на localhost:3000:
docker compose up -d --build
Задайте для проекта demo имя demo в package.json и ответ demo в server.js.
Соберите образ и откройте страницу на опубликованном порту.