Vscode-docker: 添加对多阶段 docker 文件的支持

创建于 2017-04-28  ·  7评论  ·  资料来源: microsoft/vscode-docker

可能只需要更新默认的 dockerfile 模板。

https://codefresh.io/blog/node_docker_multistage/

//cc: @lostintangent

粗略的想法...

FROM node:latest AS base
WORKDIR /usr/src/app
COPY package.json .

FROM base AS dependencies
RUN npm set progress=false && npm config set depth 0
RUN npm install --only=production
RUN cp -R node_modules prod_node_modules
RUN npm install

FROM dependencies AS build
COPY . .
RUN ./node_modules/.bin/gulp
RUN cp -R client prod_client

FROM base AS release
COPY --from=dependencies /usr/src/app/prod_node_modules ./node_modules
COPY --from=build /usr/src/app/prod_client ./client
COPY . .
EXPOSE 3000
CMD npm run start
enhancement needs more info

最有用的评论

听起来不错! 我们还应该做到以下几点:

  1. 更新内置Docker 语法文件以正确着色新的AS关键字和--from标志。 这是较低的 pri,但会很好,因为多阶段构建可能会变得非常普遍

  2. 更新 linter 规则以不抱怨FROM指令的AS foo子句。 目前,我们对此给出了误报,这并不理想

所有7条评论

听起来不错! 我们还应该做到以下几点:

  1. 更新内置Docker 语法文件以正确着色新的AS关键字和--from标志。 这是较低的 pri,但会很好,因为多阶段构建可能会变得非常普遍

  2. 更新 linter 规则以不抱怨FROM指令的AS foo子句。 目前,我们对此给出了误报,这并不理想

我们还应该考虑以下增强功能:

  1. 在 FROM 指令中使用 AS 子句时,更新悬停提供程序以正确解析图像名称。 现在,当使用 FROM/AS 时,悬停行为被破坏

  2. 通过在 COPY 指令和 FROM 指令中键入“--from=”时显示基本映像名称的完成列表来更新 Dockerfile 完成提供程序

当你在它的时候。 Dockerfile 中只能有一条 CMD 指令的警告(绿色曲线)现在是错误的。

嗨,@seank-com。 我相信您描述的错误是 rcjsuen/dockerfile-utils#22。 有关解决方法,请参阅https://github.com/rcjsuen/dockerfile-utils/issues/22#issuecomment -366485869。 该错误应该有望在扩展的下一个版本中修复,因为 #249 已被合并。

如果您发现任何其他奇怪或不正确的验证错误,请随时告诉我。 谢谢!

当前的 Node.js 模板:

FROM节点:10.13-alpine
ENV NODE_ENV 生产
工作目录 /usr/src/app
复制 ["package.json", "package-lock.json ", "npm- shrinkwrap.json", "./"]
运行 npm install --production --silent && mv node_modules ../
复制 。 .
曝光 3000
CMD npm 启动

@lostintangent@chrisdias我们是否需要改进这一点以获得更好的实践?

@lostintangent @chrisdias你的想法?

此问题已自动关闭,因为它需要更多信息并且最近没有活动。 另请参阅我们的问题报告指南。

快乐编码!

此页面是否有帮助?
0 / 5 - 0 等级