############################################
step1:
#nestjs工程目录下运行
npm run build
nest build
#将dist目录、package.json、yarn.lock、bin目录拷贝到docker工程目录。
#因为工程种引用了C++编译的so库及node-api,文件放在bin目录中了。
ding@debian:~/matcher_docker_ts$ ls
bin dist Dockerfile myeasylog.log node_modules package.json run.sh yarn.lock
ding@debian:~/matcher_docker_ts$
############################################
step2:
#Dockerfile
# 拉取jdk8作为基础镜像
FROM node:18-alpine
#修改镜像时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
ENTRYPOINT ["sh","-c","/app/run.sh"]
############################################
step3:
#run.sh
#!/bin/bash
cd $(dirname "$0")
echo `pwd`
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:`pwd`/bin
yarn install --production &&
node dist/main.js
############################################
step4:
#docker run
docker run --name=mr \
-p 1025:3000 \
-v $(pwd):/app \
-d mr:3
############################################
step5:
#工程文件每次更新的时候只需要替换当前目录下的对应文件,
#然后重启容器 **docker restart mr** 即可。