Skip to content

Instantly share code, notes, and snippets.

@jazzqi
Created October 23, 2018 08:29
Show Gist options
  • Save jazzqi/cc28f381841b68c41192296fefd04dc0 to your computer and use it in GitHub Desktop.
Save jazzqi/cc28f381841b68c41192296fefd04dc0 to your computer and use it in GitHub Desktop.
使用多级构建时,将在 Dockerfile 中使用多个 FROM 语句,但最后仅会使用最终阶段构建的文件。这样,得到的镜像将仅包含生产服务器中所需的依赖,理想情况下文件将非常小。
# ---- Base Node ----
FROM node:carbon AS base
# 创建 app 目录
WORKDIR /app
# ---- Dependencies ----
FROM base AS dependencies
# 使用通配符复制 package.json 与 package-lock.json
COPY package*.json ./
# 安装在‘devDependencies’中包含的依赖
RUN npm install
# ---- Copy Files/Build ----
FROM dependencies AS build
WORKDIR /app
COPY src /app
# 如需对 react/vue/angular 打包,生成静态文件,使用:
# RUN npm run build
# --- Release with Alpine ----
FROM node:8.9-alpine AS release
# 创建 app 目录
WORKDIR /app
# 可选命令:
# RUN npm -g install serve
COPY --from=dependencies /app/package.json ./
# 安装 app 依赖
RUN npm install --only=production
COPY --from=build /app ./
#CMD ["serve", "-s", "dist", "-p", "8080"]
CMD ["node", "server.js"]
作者:lsvih
链接:https://juejin.im/post/5a9626abf265da4e9d225f4f
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment