pinyin 依赖 nodejieba, 这里的其实要解决的是安装 nodejieba 的问题.
默认 docker node alpine 因缺失编译工具无法编译 nodejieba, 所以通过 multi stage 在 builder stage 编译后拷贝至最终镜像使用.
FROM node:12.9.0-alpine as builder
WORKDIR /app
# 安装编译工具链
RUN apk add alpine-sdk python
# 如果不是 alpine 而是 debian 需要使用 apt-get 安装
# RUN apt-get update && apt-get install -y build-essential python
# install & build
RUN npm i pinyin
FROM node:12.9.0-alpine
WORKDIR /app
# copy build result so files
COPY --from=builder /app/ /app/