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

Docker打包nodejs项目和数据库

时间:2023-04-04 01:36:27 Node.js

要阅读本文,您必须了解docker的基础知识。本文仅提供思路和部分代码。不负责所有指令的示教,需谨慎操作!三思停止所有正在运行的容器dockerstop$(dockerps-a-q)deleteallcontainersdockerrm$(dockerps-a-q)startcontainerwithdocker-composedocker-composeup-dusedocker-composeclosecontainerdocker-composedown查看Logdockerlogs${containerid}deploymysqldocker-composeservices:mysql:network_mode:"host"environment:MYSQL_ROOT_PASSWORD:"yourpassword"MYSQL_USER:'test'MYSQL_PASS:'yourpassword'image:"docker.io/mysql:latest"restart:always//连接不上就继续重试//depends_on:选择依赖某个服务,被依赖的服务会优先加载//-'sss'volumes:-"./db:/var/lib/mysql"-"./conf/my.cnf:/etc/my.cnf"-"./init:/docker-entrypoint-initdb.d/"ports:-"3306:33060"自动加载sql语句,实现数据库的初始化。mysql官方镜像中,加载时会执行docker-entrypoint-initdb.d下文件夹下的sql文件。用这个来实现初始化。如果mysql数据文件夹中有数据,则不会加载sql文件。EGGprojectWithdocker:直接中断因为egg-scripts有daemon进程,去掉daemon参数"start":"egg-scriptsstart--title=egg-server-broken-chain",部署NodeJs项目创建一个新的Dockerfile文件FROMnode:10.13-alpineENVNODE_ENVproductionWORKDIR/usr/src/appCOPY["package.json","package-lock.json*","npm-shrinkwrap.json*","./"]RUNnpminstall-gcnpmRUNcnpminstall--production--silentCOPY..EXPOSE7001CMD["npm","start"]在docker-compose.yml中添加信息,使用docker-compose管理多个镜像还是比较方便的,最终的docker-compose.yml文件版本:'2'services:broken-chain:image:broken-chainbuild:.environment:NODE_ENV:productionports:-7001:7001depends_on:-“mysql”重启:总是mysql:环境:MYSQL_ROOT_PASSWORD:“123”图像:“docker.io/mysql:5.6”卷:-“./mysql/init:/docker-entrypoint-initdb.d/”端口:-"3306:3306"发布镜像登录Dockerhubdockerlogintotag镜像dockertag${imageid}${username}/${imagename}:${tagtag}pushtodockerhubdockerpush${username}/${imageName}:${tagtag}最后,您想将您的项目开箱即用地提供给其他人。需要新建一个目录结构-init-xxx.sql//初始化sql语句-docker-compose.ymldocker-compose.yml如下version:'2'services:broken-chain:image:${yourusername}/${yourimage}//这次直接pullyourimageondockerhub//build:.删除构建步骤环境:NODE_ENV:生产端口:-7001:7001depends_on:-“mysql”重启:总是mysql:环境:MYSQL_ROOT_PASSWORD:“123”图像:“docker.io/mysql:5.6”卷:-“./mysql/init:/docker-entrypoint-initdb.d/"ports:-"3306:3306"压缩包供他人使用命令运行(数据库+项目)docker-composeup-dcomfort