本司的一些nodejs环境基本都运行在pm2的环境下,pm2是一个node环境下的多进程管理工具,通过pm2可以提升不少性能,管理起来也比较方便。在制作nodejs+pm2镜像时,建议指定版本进行安装,这样可以避免时间一久出现版本上不兼容的问题。
通过apk直接安装,系统指定版本,避免后续时间久了,出现版本不兼容的情况,如果是需要安装指定版本的话,可以将nodejs更改成nodejs==18.18.2 ,后边的数字是版本号。
# VERSION 1 - EDITION 1
# # Author: wangbikang
FROM alpine:3.18
WORKDIR /app
RUN rm -rf /var/cache/apk/* && \
rm -rf /tmp/*
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/${TZ} /etc/localtime && echo ${TZ} > /etc/timezone
RUN apk add --no-cache --virtual .build-deps \
nodejs \
npm \
curl \
&& apk add --no-cache --virtual .gettext gettext \
&& mv /usr/bin/envsubst /tmp/ \
&& mv /tmp/envsubst /usr/local/bin/ \
&& apk add --no-cache tzdata
RUN npm install pm2@latest -g
CMD ["pm2","-v"]