因为公司的服务器版本太老了,运行最新的nodejs会提示 version `GLIBC_2.27‘ not found (required by node)
但是安装新版本的glibc又很折磨,所以就开始考虑用docker进行部署
配置文件已经写好了,内容如下:
FROM node:lts-alpine
# 创建目录
WORKDIR /app
# 设置时区为东八区
ENV TZ="Asia/Shanghai"
# 安装cnpmi
RUN npm i -g cnpm
# 安装开发期依赖
COPY package.json ./package.json
RUN cnpm install
# 复制并构建项目
COPY . .
RUN cnpm run build
# 删除开发期依赖
RUN rm -rf node_modules
# 安装生产环境依赖
RUN cnpm install --production
# 如果端口更换,这边可以更新一下
EXPOSE 7011
# 运行项目
CMD ["npm", "run", "start"]
把内容保存成文件:Dockerfile,放到根目录下:
注意,如果你选择是windows系统,那么请先把项目转移到linux下,然后打包docker镜像
开始打包docker镜像
# 切换到你的midwayjs项目的根目录
cd /path/to/you/midwayjs-project
# 开始构建docker镜像,请注意要在Dockerfile文件所在的位置执行
docker build -t {目标镜像名字} .
# 创建一个名称为net1的网络
docker network create net1
# 查看镜像名称和tag,需要记下{目标镜像名字}和tag
docker images
# 运行你刚刚打包好的镜像
# -d 是后台运行
# -p 是映射端口
# --name 是指定运行的时候,项目叫什么名称
docker run -d --network net1 -p 7011:7011 --name {项目名称} {目标镜像名字}:{tag}
# 然后项目就跑起来了
浏览器访问一下,就成功跑起来了