准备
初始化目录
mkdir nodetest
cd nodetest
npm init
添加index.js,内容如下
async function cleanupJob(){
return new Promise((resolve)=>{setTimeout(resolve,2000)});
}
async function cleanup(){
console.log('start');
await cleanupJob();
console.log('cleaned');
process.exit(0);
}
process.on('SIGTERM', cleanup);
process.on('SIGINT', cleanup);
setInterval(()=>{console.log('running')}, 1000)
修改package.json,添加
"start":"node index.js"
添加Dockerfile,内容如下
from node:latest
WORKDIR /app
COPY . /app
CMD ["npm", "start"]
验证
执行
docker build ndoetest:v1 .
docker run nodetest:v1
按ctrl+c发现没有执行cleanup就退出了
解决办法
修改package.json,内容如下
"start":"exec node index.js"
验证
执行
docker build ndoetest:v2 .
docker run nodetest:v2
按ctrl+c发现执行了cleanup