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
This article shares the specific code of JavaScri...
Before talking about CSS priority, we need to und...
1.ssh command In Linux, you can log in to another...
I took the bus to work a few days ago. Based on m...
Scenario simulation: Some domestic companies need...
This article shares the specific code of Vue to a...
1. Development environment vue 2. Computer system...
This article mainly introduces the installation/st...
This article uses an example to describe how to u...
Connections can be used to query, update, and est...
2048 mini game, for your reference, the specific ...
This article shares the specific steps of replaci...
I started learning MySQL recently. The installati...
In summary: 1. Consider performance when designin...
Permission denied: The reason for this is: there ...