• 原有流程:

   a. 若在灰度过程中获取到异常则触发灰度结束.

   b. 有异常流程为:"上线 -> 客户发现问题 -> 反馈问题 -> 运维手动回滚".


  • 优化后流程:

   a. "灰度 -> Sentry捕获异常 -> 自动停止灰度".


# 基于 Alpine Linux 的最小 Docker 图像,具有完整的包索引,大小仅为 5 MB!
FROM alpine

# 更换阿里镜像
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories

# 指定执行 CMD 的目录,即先 cd 到该目录上
WORKDIR /home/docker/we_render

# Installs latest Chromium (100) package.
RUN apk add --no-cache \
      chromium \
      nss \
      nodejs \
      yarn

# 拷贝宿主机的文件到容器中的 we_render 目录
COPY . /home/docker/we_render

# 通过 yarn 设置淘宝源和装包,并清除缓存
RUN yarn config set registry 'https://registry.npm.taobao.org' && \
    yarn global add pm2 && \
    yarn install && \
    yarn cache clean

# 声明容器提供的服务端口
EXPOSE 31070

# 容器主进程的启动命令
CMD ["yarn", "run", "schedule"]