当前位置: 首页 > 后端技术 > Node.js

Docker部署Node.js

时间:2023-04-03 15:12:25 Node.js

前言项目中使用Node作为中间层,使用docker部署node。这里对部署要点和步骤进行总结和记录;docker的介绍和安装这里不再赘述。网上也有很多相关的教程和文章,大家可以自行搜索查看。项目结构`--docker-node|--data|--server|--app.js|--Dockerfile|--process.yml|--package.json|--docker-compose.yml1.创建节点.js程序app.jsconstexpress=require('express');constapp=express();app.get('/',(req,res)=>res.send('helloworld!'));app.听(3008);2。从节点创建Dockerfile:8.9-alpineRUNmkdir-p/usr/src/appWORKDIR/usr/src/appRUNnpmsetregistryhttps://registry.npm.taobao.org/RUNnpminstallCMD["./node_modules/pm2/bin/pm2-docker","process.yml"]从Dockerfile中可以看出我们是通过pm2-docker来运行node应用的。使用PM2,我们可以监控文件变化,实现应用重启和日志分析。保存和其他效果;这里需要一个process.yml配置文件,相关用法可以参考PM2文档。process.ymlapps:-脚本:'app.js'名称:'dokcer-node'exec_mode:'fork'watch:true实例:1log_date_format:'YYYY-MM-DDHH:mmZ'ignore_watch:['node_modules']3.创建docker-compose.yml在生产环境中,我们经常使用多个容器。我们可以通过一个配置文件来管理多个Docker容器,然后使用docker-compose来启动、停止、重启应用程序。docker-compose.ymlversion:"3.0"服务:server_node:container_name:server-nodebuild:context:./servervolumes:-./server:/usr/src/appports:-"3008:3008"environment:-TZ=亚洲/上海portainer:image:portainer/portainer:1.11.4container_name:portainerexpose:-"9000"ports:-"9000:9000"volumes:-/var/run/docker.sock:/var/run/docker.sock-./data/portainer:/dataenvironment:-TZ=Asia/Shanghai4.启动容器以上文件创建完成后,我们执行以下命令创建我们的镜像并启动容器$docker-compose-fdocker-compose.ymlup-d5,测试1,访问本地3008端口2,测试代码变化时,节点自动重启功能,我们改“helloworld!”到“restart!!!!”,再次刷新页面3、使用Portainer管理容器;可视化界面比命令行更方便,我们可以快速查看容器日志、容器配置、状态以及重启、删除等操作;我们可以访问本地的9000端口(docker-compese.yml),结果如下。

猜你喜欢