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

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

不言
不言avant
2018-11-26 14:24:092441parcourir

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

1. Créer un programme Node.js

app.js

const express = require('express');
const app = express();
app.get('/', (req, res) => res.send('hello world!'));
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"]
À 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']

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

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

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer