Простий додаток форми користувача на 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
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"]
- 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
- mongodb: Використовує офіційний образ MongoDB.
- mongo-express: Використовує образ Mongo Express для надання веб-інтерфейсу до MongoDB.
- volumes: Вказує на постійне місце для зберігання даних MongoDB.
3. Запуск додатку з Docker
Метод 1) Використання Docker команд
Щоб налаштувати та запустити додаток за допомогою Docker, виконайте ці кроки:
- Створення 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. Ви можете змінити це.)
Для входу
5. Створення бази даних та колекції
Створіть нову базу даних (user-account
) і колекцію (users
) за допомогою Mongo Express.
6. Запуск Node.js додатку локально
Перейдіть до вашої директорії додатку, встановіть залежності та запустіть сервер:
npm install
node server.js
7. Доступ до інтерфейсу Node.js додатку
Відкрийте ваш Node.js додаток у браузері за адресою http://localhost:3000
Метод 2) Використання Docker Compose
Як альтернатива, ви можете використовувати Docker Compose для запуску всіх сервісів однією командою:
- Запуск MongoDB та Mongo Express
Запустіть наступну команду для запуску сервісів, визначених уdocker-compose.yaml
:
docker-compose -f docker-compose.yaml up
Ви можете отримати доступ до Mongo Express за адресою http://localhost:8080
.
2. Створення бази даних та колекції
Використовуйте Mongo Express для створення бази даних (my-db
) та колекції (users
).
3. Запуск Node.js додатку
Перейдіть до вашої проектної директорії, встановіть залежності та запустіть сервер:
npm install node server.js
4. Доступ до Node.js додатку
Відвідайте ваш Node.js додаток за адресою http://localhost:3000
.
Перекладено з: How to Create NodeJs and Mongodb Application with Docker?