nestjs工程部署到docker

############################################
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** 即可。