Docker 基于 alpine 构建 Node.js 镜像

最近发现之前写的 Node.js 镜像执行不了了,排查了下问题发现是 alpine 下的 node-npm 这个依赖包改名字了。之前是 node-npm,现在改成了 npm ,所以把之前的 Dockerfile 改一下就行了。

FROM alpine:latest
# 安装nodejs环境,国内使用阿里云镜像加速,不然太慢了,打包服务器在国外的可以不改。
RUN echo "http://mirrors.aliyun.com/alpine/edge/main/" > /etc/apk/repositories \
    && echo "http://mirrors.aliyun.com/alpine/edge/community/" >> /etc/apk/repositories \
    && apk update \
    && apk add --no-cache --update nodejs npm \ # 关于版本问题,生产环境建议锁定版本
    && node -v && npm -v \
    && npm config set registry https://registry.npm.taobao.org

ENV NODE_ENV production

WORKDIR /home/app

COPY package.json /home/app/

RUN npm install --production

COPY . /home/app

EXPOSE 8080

CMD ["npm", "start"]