Рубрики
Uncategorized

Начало работы с Nodejs, Express и Docker

В этой статье мы узнаем, как начать работу с Nodejs, Express и Docker. Если вы … отмечены JavaScript, Docker, DevOps, WebDev.

В этой статье мы узнаем, как начать работу с Nodejs, Express и Docker. Если вам нужны основы того, как использовать Docker, я бы посоветовал вам прочитать мою статью о понимании оснований Docker.

Docker — Понимание оснований

Emma Donery для Lux Tech Academy ・ 12 августа ・ 5 минут читать

Предварительные условия

  • JavaScript
  • Основы Docker

Понимание докера

Docker это платформа с открытым исходным кодом, которая предоставляет открытую платформу для создания, доставки и запуска распределенных приложений. Он автоматизирует процедуры рутинной конфигурации и используется во всем жизненном цикле разработки для создания быстрых, простых и портативных приложений.

Понимание Nodejs и выражение

Node.js является структурой времени выполнения JavaScript, которая используется для создания сетевых и серверных приложений.

Экспресс это небольшая структура, которая находится на вершине функциональности веб -сервера Node.js, которая предоставляет надежный набор функций для разработки веб -и мобильных приложений.

Зачем делать ваше приложение

  • Быстрое развертывание приложений
  • Портативность между машинами
  • Управление версиями и повторное использование компонентов
  • Совместное использование изображений/dockerfiles
  • Легкая площадь и минимальные накладные расходы
  • Упрощенное обслуживание

Nodejs приложение

  • Создайте новый каталог, где будут жить все файлы
  • Создайте файл package.json в этом каталоге для определения вашего проекта и его зависимостей:
{
  "name": "express_app",
  "version": "1.0.0",
  "license": "MIT",
  "description": "Node.js and express on Docker",
  "author": "Firstname Lastname ",
  "main": "app.js",
  "scripts": {
    "start": "node app.js"
  },
  "dependencies": {
    "express": "^4.16.1"
  }
}
  • Используя структуру Express.js, создайте файл app.js, который описывает веб -приложение:
const express = require('express')
const app = express()
const PORT = 3000
const HOST = '0.0.0.0'

// App
const app = express()
app.get('/', (req, res) => {
  res.send('Hello World')
});

app.listen(PORT, HOST)
console.log(`Our app running on http://${HOST}:${PORT}`)

Запустить приложение

$ node app.js Перейти к http://localhost: 3000/ в вашем браузере, чтобы просмотреть его.

Задачи на приложение

  • Создайте пустой Dockerfile

Dockerfile

FROM node:12-alpine3.14

WORKDIR /usr/src/app

COPY package*.json ./

RUN npm install

COPY . .

EXPOSE 8080

CMD [ "node", "app.js" ]

Вот что происходит:

Установите рабочий каталог на/usr/src/app

Скопируйте файл package.json в/usr/src/app

Установите node_modules

Скопируйте все файлы из корнета проекта/usr/src/

  • Создать .dockerignore
node_modules
npm-debug.log

Nb : Если вы работаете с GIT, то вы также захотите добавить свой каталог .git и .gitignore.

  • Построить изображение Docker
$ docker build -t hello-world .
  • Запустите контейнер Docker
$ docker run -p 8080:8080 hello-world
  • Обмен изображением Docker Чтобы вы поделились изображением Docker, вам нужно сначала зарегистрироваться в Docker Hub. Docker Hub — это сервис Docker, которая позволяет вам найти и делиться изображениями контейнеров с вашей командой. После регистрации:

    • Воспроизведите изображение с помощью учетных данных Docker Hub.
    • Войти в Docker Hub
    • Нажмите изображение в концентратор Docker

Поздравляю! 🎉 🎉 Изображение теперь можно использовать на любом сервере или ПК, на котором установлен Docker:

docker run [USERNAME]/hello-world

Docker Compose

Docker Compose-это инструмент для запуска мультиконтравейных приложений на Docker. Вы настраиваете сервисы вашего приложения с помощью файла YAML. Затем вы создаете и начинаете все услуги из своей настройки с одной командой.

Compose позволяет запущать приложения в одном или более контейнерах простым. Чтобы построить или выполнять контейнеры, нам не нужно помнить особенно длинные команды. Ваши приложения будут работать гладко, если вы можете запустить сборку Docker-Compose и составить Docker.

  • В каталоге Project Root создайте файл docker-compose.yml.

Docker-Compose.yml

version: '3.8'  #specifies docker compose version
services:
  web:
    build:
      context: ./
      target: dev
    volumes:
      - .:/src
    command: npm run start:dev
    ports:
      - "8080:8080"
    environment:
      NODE_ENV: development
      DEBUG: nodejs-docker-express:*

В этой статье у меня есть веб -сайт по имени услуг, в котором есть контекст сборки и целевой набор для Dev. Это говорит Docker, что я хочу построить изображение Docker на стадии разработки.

том Инструктирует Docker скопировать и синхронизировать изменения из локального каталога ./Хоста с/src в контейнере Docker.

Раскрытие порта 8080 открывает порт, где веб -сервер Node.js Express работает по умолчанию.

Создайте и запустите свое приложение с помощью Compose

  • Запустите приложение, запустив команду Docker-Compose Up
$ docker-compose up
  • Доступ http://localhost: 8000/ в браузере, чтобы увидеть запуск приложения.

  • Остановите запуск приложения, используя команду Docker-Compose Down.

$ docker-compose down

Вывод

Docker Compose — отличный инструмент для запуска многочисленных контейнеров. Ради этой статьи я использовал исключительно node.js с одним контейнером, работающим на докере.

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

😊 Удачи кодирование! 😊 Обязательно оставьте какие -либо комментарии для меня.

Вы можете связаться со мной в Твиттере https://twitter.com/emmadonery или LinkedIn https://www.linkedin.com/in/emma-donery-0831a7188/

Оригинал: «https://dev.to/emma_donery/getting-started-with-nodejs-express-and-docker-5ffa»