Привет, дорогой кодер, добро пожаловать в мою серию технических статей, посвященную Node.js и Docker Анкет Надеемся, вам понравится!
Проблема:
Вы никогда не использовали Docker раньше, и вы разработчик JavaScript. Вы хотите понять, как использовать контейнеры вместе с узлом. Пойдем!
1. Настраивать
В этом уроке я буду использовать свой любимый редактор Visual Studio Code. Вам также понадобится Nodejs и Docker установлен. В моем случае я использую Windows, поэтому я получил Docker для Windows отсюда.
Следующая команда создает новую папку с именем Test-Node-App, затем создает файл пакета NPM и открывает папку в коде VS.
mkdir test-node-app && cd test-node-app && npm init -y && code .
Также установите Express для создания сервера.
npm i express
2. Создать приложение Basic Node
Откройте файл package.json и измените его так:
{
"name": "test-node-app",
"version": "1.0.0",
"description": "",
"main": "server.js",
"scripts": {
"start": "node server.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"express": "^4.17.1"
}
}
Теперь добавьте новый файл с именем server.js:
Super Basic Basic Basic App готова. Теперь давайте протестируем его на местном уровне. Запустите эту команду в папке приложения:
npm start
Вы должны увидеть следующее в консоли и сможете получить доступ к серверу по ссылке http://localhost: 8080/
3. Подготовьте файл Docker
Чтобы создать наше изображение, нам нужен файл Docker. Создайте файл с именем Dockerfile
touch Dockerfile
И вставьте это внутрь:
FROM node:8 # Create app directory WORKDIR /usr/src/app # Install app dependencies # A wildcard is used to ensure both package.json AND package-lock.json are copied COPY package*.json ./ RUN npm install # Bundle app source COPY . . EXPOSE 8080 CMD [ "npm", "start" ]
Этот файл сообщает Docker загрузить node.js версии 8, создать каталог для приложения, копировать там Package.json файлы, запустите NPM Установка Для node_modules сообщает, какой порт этого приложения хочет использовать, и, наконец, запускает его с началом NPM.
Эээ .. много да? 😮
Нам также понадобится файл под названием .dockerignore Анкет Создайте и вставьте следующие внутри:
node_modules npm-debug.log
4. Создайте изображение Docker
Прежде всего, создайте наше изображение с помощью этой команды.
docker build -t test-node-app .
Подождите, пока он не закончится, и теперь мы сможем увидеть созданное новое изображение.
docker images
Если вы используете VS -код, вы можете установить очень приятное Docker Extension Анкет Он добавляет кнопку к боковой панели, которая открывает Docker Explorer. Здесь вы можете увидеть все доступные изображения и контейнеры. Оттуда вы можете запустить, остановить и удалять контейнеры, что довольно полезно.
Если вы хотите удалить изображение, запустите это:
docker rmi
5. Запустите контейнер Docker (наконец)
Время запуска контейнера на основе нашего изображения (наше приложение в изолированной среде). Важно то, что нам нужно рассказать Docker, как сопоставить порт. Теперь мы запускаем наш контейнер и карту 8080 до 49165.
docker run -p 49165:8080 -d test-node-app
Это означает, что теперь мы можем получить доступ к приложению с помощью этого URL http://localhost: 49165/
Есть еще одна очень полезная команда, чтобы увидеть все работающие контейнеры:
docker ps
Вы можете остановить контейнер, щелкнув правой кнопкой
docker stop
Теперь, если вы запустите Docker PS Опять же, вы не увидите, как ваш контейнер работает. Если вы хотите увидеть остановленные контейнеры, вам нужно добавить - Все Флаг команде так:
docker ps -a
Если у вас все еще есть несколько вопросов, вы можете легко обратиться к Официальная документация здесь.
🚀 Если вы прочитали что -то интересное из этой статьи, пожалуйста, нравится и следуйте за мной для получения дополнительной информации. Спасибо, дорогой кодер! 😏
Оригинал: “https://dev.to/vguleaev/dockerize-a-node-js-app-with-vs-code-29c4”