Created
October 23, 2018 08:29
-
-
Save jazzqi/cc28f381841b68c41192296fefd04dc0 to your computer and use it in GitHub Desktop.
使用多级构建时,将在 Dockerfile 中使用多个 FROM 语句,但最后仅会使用最终阶段构建的文件。这样,得到的镜像将仅包含生产服务器中所需的依赖,理想情况下文件将非常小。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# ---- 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