需求背景

  • 由于公司IM切换成飞书,我发现了飞书机器人比较好玩,加上业务测试团队有自定义定时推送群组消息的需求,所以就写了个简单的golang定时任务;
  • 本想直接在docker中裸奔,但是想起曾经用过的Supervisord,所以最开始选用的就是Supervisord,可是那个生成配置文件的过程实在是太恶心了,所以灵光乍现想到了pm2
  • 众所周知,pm2需要node环境,所以下面就是准备docker的步骤了。

Dockerfile

FROM node
MAINTAINER CooperHsu
RUN rm /etc/localtime
# 设置时区
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# RUN npm install pm2 -g
RUN yarn global add pm2
RUN mkdir /tiklark
COPY . /tiklark
WORKDIR /tiklark
CMD ["pm2-runtime","start","tiklark.yaml", "--watch"]
# RUN pm2 start tiklark.yaml --watch

为什么用yarn

  • 因为比npm快了不止一倍,谁用谁知道~

为什么用pm2-runtime

如果不这么运行的话,容器会在刚启动的时候就挂掉噢!
参考链接: