Maison > Article > interface Web > Processus détaillé de déploiement de Node.js avec Docker
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
2. Pour tester la fonction de redémarrage automatique du nœud lorsque le code change, nous avons remplacé "hello world!" par "restart !!!"
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.
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!