В этой статье показано, как создать простое приложение Node.js и настроить Docker для локального запуска приложения в режиме наблюдения внутри контейнера.

Зачем использовать Docker для разработки?

  • Легкий запуск. Новым разработчикам необходим только Docker CE.
  • Та же среда. Все, кто работает над проектом, будут иметь одинаковую среду (включая версии Nodejs и npm, а также node_modules, если используются package-lock.json или yarn.lock). Также минимальная разница с производственной средой, если приложение работает в контейнере докера на продукте.

Предварительные требования:

Создание приложения Node.js

  1. Создайте новый проект.
# Create new app directory 
npm i my-app 
# Initialize with 
npm init -y 
# Install express 
npm i express --save  
# Install nodemon for running an app in watch mode
npm i nodemon --save-dev 
#create src dir and file inside 
mkdir src && touch src/index.js

2. Отредактируйте src/index.js.

3. Добавьте сценарий в package.json.

"srcipts": {
  "dev": "nodemon src/index.js"
  ...
}

Настройка Dockerfile и docker-compose.yml

  1. Добавьте Dockerfile.

2. Добавьте docker-compose.yml.

3. Добавьте сценарий в package.json.

"scripts": {
  "docker:dev": "docker-compose up"
  ...
}

Бегаем все вместе

  1. Запустить приложение в докер-контейнере в режиме наблюдения: npm run docker:dev.

Это создаст контейнер с использованием Dockerfile и смонтирует локальный каталог в каталог приложения контейнера, а также запустит приложение в режиме наблюдения.

2. Вы можете проверить «http: // localhost: 3000».

Вы можете изменить исходные файлы, nodemon будет перезапущен, как обычно, при изменении файлов.

Заключение

Весь исходный код доступен на Github.