Maison > interface Web > js tutoriel > Processus détaillé de déploiement de Node.js avec Docker

Processus détaillé de déploiement de Node.js avec Docker

不言
Libérer: 2018-11-26 14:24:09
avant
2503 Les gens l'ont consulté

Cet article vous présente le code d'implémentation de la file d'attente PHP. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

Node sera utilisé comme couche intermédiaire dans le projet, et docker est utilisé pour déployer le nœud. Ici, nous résumons et enregistrons les points et étapes clés du déploiement ; être décrit ici. Il existe également de nombreux didacticiels et articles connexes sur Internet, vous pouvez les rechercher et les visualiser par vous-même si vous en avez besoin.

Structure du projet

-- docker-node
  |-- data
  |-- server
    |-- app.js
    |-- Dockerfile
    |-- process.yml
    |-- package.json
  |-- docker-compose.yml
Copier après la connexion

1. Créer un programme Node.js

app.js

const express = require('express');
const app = express();
app.get('/', (req, res) => res.send('hello world!'));
Copier après la connexion
app.listen(3008);

2. Créez un fichier Docker

FROM node:8.9-alpine
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
RUN npm set registry https://registry.npm.taobao.org/
RUN npm install
CMD ["./node_modules/pm2/bin/pm2-docker", "process.yml"]
Copier après la connexion
À partir du Dockerfile, nous pouvons voir que nous exécutons l'application de nœud via pm2-docker. En utilisant PM2, nous pouvons surveiller les modifications de fichiers et obtenir des effets tels que le redémarrage et la journalisation de l'application. partage ; ici Nous avons besoin d'un fichier de configuration process.yml. Pour une utilisation associée, vous pouvez consulter la documentation PM2.

process.yml

apps :

 - script : 'app.js'
  name  : 'dokcer-node'
  exec_mode: 'fork'
  watch : true
  instances: 1
  log_date_format : 'YYYY-MM-DD HH:mm Z'
  ignore_watch: ['node_modules']
Copier après la connexion

3. Créez docker-compose.yml

Dans notre environnement de production. Souvent, plusieurs conteneurs sont utilisés. Nous pouvons gérer plusieurs conteneurs Docker via un fichier de configuration, puis utiliser docker-compose pour démarrer, arrêter et redémarrer l'application.

docker-compose.yml

version: "3.0"
services:
 server_node:
  container_name: server-node
  build: 
   context: ./server
  volumes:
   - ./server:/usr/src/app
  ports:
   - "3008:3008"
  environment:
   - TZ=Asia/Shanghai

 portainer:
  image: portainer/portainer:1.11.4
  container_name: portainer
  expose:
   - "9000"
  ports:
   - "9000:9000"
  volumes:
   - /var/run/docker.sock:/var/run/docker.sock
   - ./data/portainer:/data
  environment:
   - TZ=Asia/Shanghai
Copier après la connexion

4. Démarrez le conteneur

Une fois les fichiers ci-dessus créés, nous exécutons la commande suivante, puis Notre image sera créée et le conteneur sera démarré

$ docker-compose -f docker-compose.yml up -d
Copier après la connexion

5. Test

Accéder au port 3008 local

Processus détaillé de déploiement de Node.js avec Docker

2. Pour tester la fonction de redémarrage automatique du nœud lorsque le code change, nous avons remplacé "hello world!" par "restart !!!"

Processus détaillé de déploiement de Node.js avec Docker

3. Utilisez Portainer pour gérer les conteneurs par rapport à la ligne de commande, l'interface visuelle nous permet de visualiser facilement et rapidement les journaux des conteneurs, les configurations des conteneurs, leur état, et redémarrage, suppression et autres opérations ; nous pouvons accéder au port local 9000 (configuré dans docker-compese.yml), les résultats sont les suivants.

Processus détaillé de déploiement de Node.js avec Docker

Ce qui précède représente l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers numéros
github - problème git checkout -f
Depuis 1970-01-01 08:00:00
0
0
0
Comment connecter atom à votre propre github ?
Depuis 1970-01-01 08:00:00
0
0
0
css - blog de construction hexo+github
Depuis 1970-01-01 08:00:00
0
0
0
Comment supprimer les versions publiées sur github
Depuis 1970-01-01 08:00:00
0
0
0
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal