Веб-орієнтовані системи і технології
Лекція 2. Практична частина
Робота з БД в Docker
На попередній лекції розглянули:
Питання, що вивчатимуться в даній лекції
Практична частина
Установка інструментів
Використання Dockerfile для створення і запуску образу Docker. Контейнеризація NodeJS-застосунку
Мета роботи: отримати знання про розгортання та запуску NodeJS-застосунку в режимі розробки у Docker-контейнері.
Передумови: встановлений Docker і базове розуміння структури NodeJS-застосунку.
Адреса репозиторію для клонування:
https://gitlab.com/web-systems-docker/docker-nodejs-app-lab1
Хід роботи
git clone <repository_url> api
Хід роботи
3. Створіть файл Dockerfile із такими директивами для створення образу:
# базовий образ, основа нашого образу
FROM node:20-alpine3.17
# створення робочої папки застосунку
WORKDIR /usr/src/app
# копіювання package.json та встановлення залежностей
COPY package*.json ./
RUN npm install
# копіюємо вихідний код в робочу папку
COPY . .
# повідомляємо Docker, що в контейнері є застосунок, що прослуховує даний порт
EXPOSE 3001
# реєструємо команду для необхідності запуску застосунку при запуску контейнера
CMD [ "npm", "start" ]
Хід роботи
4. Створіть файл .dockerignore для запобігання копіювання локальних папок і файлів в Docker-образ:
node_modules
.idea
npm-debug.log
5. Побудуємо образ:
docker build . -t <your username>/nodejs-api-app
# переконаємось, що образ побудований
docker image ls
6. Запустимо застосунок:
docker run -p 3001:3001 -d <your username>/nodejs-docker-lab01
7. Зупинимо:
docker ps
docker stop <container_id>
Використання Docker Compose
Мета роботи: створити маніфест docker-compose.yml та односервісний застосунок. Налаштувати і запустити API-сервіс. Створити і використати змінну оточення.
Передумови: встановлений Docker Compose. Для перевірки можна виконати команду docker compose --version
Хід роботи
version: "3"
services:
api:
build: ./api
command: npm start
ports:
- "3001:3001"
environment:
- PORT=3001
- HOST=localhost
Хід роботи
2. Виконайте побудову котейнеризованого застосунку і його запуск:
docker compose up -d
3. Якщо потрібно перебудувати застосунок (після внесення змін в коді наприклад) і запустити, виконуємо команду:
docker-compose up --build -d
4. Перегляньте список працюючих контейнерів:
docker ps
5. Для зупинки контейнерів виконуємо команду:
docker compose stop
6. Для зупинки і видалення контейнерів виконуємо команду:
docker compose down
Хід роботи
Використання змінних оточення в коді застосунку:
const PORT = process.env.PORT;
const HOST = process.env.HOST;
Змінні оточення
Використання змінних оточення
Підготовка до роботи з БД
Підключення до БД
Підключення до БД (продовження)
Додаємо новий сервіс для роботи БД
Створення моделі даних
Перевірка запитів в БД