Preface Node will be used as the middle layer in the project, and docker is used to deploy node. The key points and steps of deployment are summarized and recorded here. I will not go into details about the introduction and installation of docker. There are also many related tutorials and articles on the Internet. You can search and view them if you need them. Project Structure `-- docker-node |-- data |-- server |-- app.js |-- Dockerfile |-- process.yml |-- package.json |-- docker-compose.yml 1. Create a Node.js program app.js const express = require('express'); const app = express(); app.get('/', (req, res) => res.send('hello world!')); app.listen(3008); 2. Create a Dockerfile 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"] From the Dockerfile, we can see that we run the node application through pm2-docker. With PM2, we can monitor file changes to achieve application restart, log storage and other effects. Here we need a process.yml configuration file. For related usage, please refer to the PM2 document. 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. Create docker-compose.yml In production environments, we often use more than one container. We can manage multiple Docker containers through a configuration file, and then use docker-compose to start, stop, and restart the 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. Start the container After the above files are created, we execute the following command to create our image and start the container $ docker-compose -f docker-compose.yml up -d 5. Testing 1. Access local port 3008 2. Test the automatic restart function of node when the code changes. We change "hello world!" to "restart!!!!" and refresh the page again. 3. Use Portainer to manage containers. Compared with the command line, the visual interface allows us to easily and quickly view container logs, container configuration, status, and restart and delete containers. We can access the local port 9000 (configured in docker-compese.yml), and the results are as follows. The above is the full content of this article. I hope it will be helpful for everyone’s study. I also hope that everyone will support 123WORDPRESS.COM. You may also be interested in:
|
<<: An elegant way to handle WeChat applet authorization login
>>: Detailed tutorial on how to install MySQL 5.7.18 in Linux (CentOS 7) using YUM
Xhtml has many tags that are not commonly used but...
Hide version number The version number is not hid...
On web pages, we often encounter this situation: ...
View mysqlbinlog version mysqlbinlog -V [--versio...
Trigger Introduction A trigger is a special store...
This article example shares the specific code of ...
1. Preparation 1.1 Download the tomcat compressed...
1. Introduction to Nginx Nginx is a web server th...
Although Microsoft has done a lot of research and ...
Table of contents Introduction Step 1 Step 2: Cre...
Distinguish the differences between the filter, f...
When shutting down the MySQL server, various prob...
Table of contents What is a Promise? Usage of rej...
This article hopes to gain some insights through a...
1. Use CSS to draw a small pointed-corner chat di...