Як створити додаток на NodeJs та MongoDB за допомогою Docker?

pic

Простий додаток форми користувача на Node.js і MongoDB — Розробка з Docker

Цей посібник проводитиме вас через процес налаштування простого додатку профілю користувача за допомогою Docker. Додаток складається з наступних компонентів:

  • Frontend: Файл index.html з чистим JavaScript і CSS стилями.
  • Backend: Сервер на Node.js з модулем Express.
  • База даних: MongoDB для зберігання даних користувачів.

Усі компоненти будуть контейнеризовані для створення безперешкодного середовища розробки та розгортання.

Клонування проекту

Щоб почати, клонуватимемо репозиторій з GitHub:

git clone https://github.com/Darshan2605/Nodejs-and-Docker-App-1.git

pic

1. Dockerfile для Node.js Backend

Спочатку створимо Dockerfile, щоб контейнеризувати додаток Node.js з frontend та backend.

FROM node:13-alpine  

ENV MONGO_DB_USERNAME=admin \  
 MONGO_DB_PWD=password  

RUN mkdir -p /home/app  

COPY ./app /home/app  

# Встановлення робочої директорії для наступних команд  
WORKDIR /home/app  

# Встановлення залежностей  
RUN npm install  

# Запуск додатку Node.js  
CMD ["node", "server.js"]

pic

  • FROM node:13-alpine: Вказує на базовий образ для додатку.
  • ENV: Встановлює змінні середовища для MongoDB.
  • RUN mkdir -p /home/app: Створює директорію /home/app у контейнері.
  • COPY ./app /home/app: Копіює файли вашого додатку в контейнер.
  • WORKDIR /home/app: Змінює робочу директорію на /home/app.
  • RUN npm install: Встановлює необхідні залежності.
  • CMD [“node”, “server.js”]: Визначає команду для запуску сервера.

2. Конфігурація Docker Compose

Docker Compose використовується для управління мультиконтейнерним середовищем, яке включає в себе Node.js додаток (Frontend+Backend), MongoDB та Mongo Express (веб-інтерфейс для MongoDB).

version: '3'  
services:  
 mongodb:  
 image: mongo  
 ports:  
 - 27017:27017  
 environment:  
 - MONGO_INITDB_ROOT_USERNAME=admin  
 - MONGO_INITDB_ROOT_PASSWORD=password  
 volumes:  
 - mongo-data:/data/db  
 mongo-express:  
 image: mongo-express  
 restart: always  
 ports:  
 - 8080:8081  
 environment:  
 - ME_CONFIG_MONGODB_ADMINUSERNAME=admin  
 - ME_CONFIG_MONGODB_ADMINPASSWORD=password  
 - ME_CONFIG_BASICAUTH_USERNAME=newadmin  
 - ME_CONFIG_BASICAUTH_PASSWORD=newpassword  
 - ME_CONFIG_MONGODB_SERVER=mongodb  
volumes:  
 mongo-data:  
 driver: local

pic

  • mongodb: Використовує офіційний образ MongoDB.
  • mongo-express: Використовує образ Mongo Express для надання веб-інтерфейсу до MongoDB.
  • volumes: Вказує на постійне місце для зберігання даних MongoDB.

3. Запуск додатку з Docker

Метод 1) Використання Docker команд

Щоб налаштувати та запустити додаток за допомогою Docker, виконайте ці кроки:

  1. Створення Docker Network
    Створіть власну мережу для MongoDB та Node.js додатку.
docker network create mongo-network

2. Запуск MongoDB контейнера
Запустіть MongoDB в контейнері з змінними середовища для аутентифікації.

docker run -d -p 27017:27017 -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=password --name mongodb --net mongo-network mongo

3. Запуск Mongo Express
Запустіть Mongo Express для взаємодії з MongoDB через веб-інтерфейс.

docker run -d -p 8081:8081 -e ME_CONFIG_MONGODB_ADMINUSERNAME=admin -e ME_CONFIG_MONGODB_ADMINPASSWORD=password --net mongo-network --name mongo-express -e ME_CONFIG_MONGODB_SERVER=mongodb mongo-express

4.
Доступ до інтерфейсу Mongo Express
Відкрийте інтерфейс Mongo Express у браузері за адресою http://localhost:8081.

MECONFIGBASICAUTH_USERNAME=newadmin

MECONFIGBASICAUTH_PASSWORD=newpassword

(Це ми вказали у файлі Docker Compose в сервісі mongo-express. Ви можете змінити це.)

Для входу

pic

pic

5. Створення бази даних та колекції
Створіть нову базу даних (user-account) і колекцію (users) за допомогою Mongo Express.

pic

6. Запуск Node.js додатку локально
Перейдіть до вашої директорії додатку, встановіть залежності та запустіть сервер:

npm install  
node server.js

7. Доступ до інтерфейсу Node.js додатку
Відкрийте ваш Node.js додаток у браузері за адресою http://localhost:3000

pic

Метод 2) Використання Docker Compose

Як альтернатива, ви можете використовувати Docker Compose для запуску всіх сервісів однією командою:

  1. Запуск MongoDB та Mongo Express
    Запустіть наступну команду для запуску сервісів, визначених у docker-compose.yaml:
docker-compose -f docker-compose.yaml up

pic

Ви можете отримати доступ до Mongo Express за адресою http://localhost:8080.

pic

2. Створення бази даних та колекції
Використовуйте Mongo Express для створення бази даних (my-db) та колекції (users).

pic

3. Запуск Node.js додатку
Перейдіть до вашої проектної директорії, встановіть залежності та запустіть сервер:

npm install node server.js

4. Доступ до Node.js додатку
Відвідайте ваш Node.js додаток за адресою http://localhost:3000.

pic

Перекладено з: How to Create NodeJs and Mongodb Application with Docker?

Leave a Reply

Your email address will not be published. Required fields are marked *