以nuxt的部署为例子
参考: https://cloud.tencent.com/developer/article/1881764
1.使用node镜像时采用alpine --最终大小646M
FROM node:18.18.0-alpine
MAINTAINER ClearMind
WORKDIR /usr/src/nuxt-app
COPY package*.json ./
RUN npm install --global cnpm --registry=https://registry.npmmirror.com
RUN cnpm install
COPY . .
RUN npm run build
RUN npm cache clean --force
ENV NUXT_HOST=0.0.0.0
ENV NUXT_PORT=3000
EXPOSE 3000
ENTRYPOINT ["node", ".output/server/index.mjs"]
2.采用逐步构建 --最终大小186M
# 构建阶段1
FROM node:18.18.0-alpine AS build
MAINTAINER ClearMind
WORKDIR /usr/src/nuxt-app
COPY package*.json ./
RUN npm install --global cnpm --registry=https://registry.npmmirror.com
RUN cnpm install
COPY . .
RUN cnpm run build
# 构建阶段2
FROM node:18.18.0-alpine
WORKDIR /app
COPY --from=build /usr/src/nuxt-app/.output /app
ENV NUXT_HOST=0.0.0.0
EXPOSE 3000
ENTRYPOINT ["node", "server/index.mjs"]