当前位置: 首页 > news >正文

做网站都得会什么技术html5网页设计作品

做网站都得会什么技术,html5网页设计作品,在线网页视频抓取工具,海口网站建设费用使用构建缓存优化 Docker 镜像构建 目录 实践构建应用程序额外资源后续步骤 假设一个简单的nodejs程序的 Dockerfile如下#xff1a; FROM node:20-alpine WORKDIR /app COPY . . RUN yarn install --production CMD [node, ./src/index.js]当你运…使用构建缓存优化 Docker 镜像构建 目录 实践构建应用程序额外资源后续步骤 假设一个简单的nodejs程序的 Dockerfile如下 FROM node:20-alpine WORKDIR /app COPY . . RUN yarn install --production CMD [node, ./src/index.js]当你运行 docker build 命令来创建新镜像时Docker 会按指定顺序执行 Dockerfile 中的每条指令为每个命令创建一个层。对于每条指令Docker 会检查是否可以重用之前构建中的指令。如果发现之前已经执行过类似的指令Docker 就不需要重新执行而是使用缓存的结果。这样你的构建过程会变得更快、更高效节省宝贵的时间和资源。 有效使用构建缓存可以通过重用之前构建的结果并跳过不必要的工作来实现更快的构建。为了最大化缓存的使用并避免资源密集型和耗时的重建理解缓存失效的工作原理非常重要。以下是一些可能导致缓存失效的情况 RUN 指令的任何更改 会使该层失效。如果 Dockerfile 中的 RUN 命令有任何修改Docker 会检测到变化并使构建缓存失效。使用 COPY 或 ADD 指令复制到镜像中的文件的任何更改。Docker 会监视项目目录中的任何更改无论是内容的变化还是属性如权限的变化Docker 都会将这些修改视为触发缓存失效的原因。一旦某一层失效所有后续层也会失效。如果由于更改导致任何之前的层包括基础镜像或中间层失效Docker 会确保依赖于它的后续层也失效。这保持了构建过程的同步防止不一致。 在编写或编辑 Dockerfile 时注意避免不必要的缓存失效以确保构建尽可能快速和高效地进行。 实践 在本指南中你将学习如何有效使用 Docker 构建缓存来优化 Node.js 应用程序的构建过程。 构建应用程序 下载并安装 Docker Desktop。 打开终端并克隆这个示例应用程序 git clone https://github.com/dockersamples/todo-list-app进入 todo-list-app 目录 cd todo-list-app在这个目录中你会找到名为 Dockerfile 的文件内容如下 FROM node:20-alpine WORKDIR /app COPY . . RUN yarn install --production EXPOSE 3000 CMD [node, ./src/index.js]执行以下命令来构建 Docker 镜像 docker build .构建过程如下所示 [] Building 20.0s (10/10) FINISHED第一行表示整个构建过程花费了 20.0 秒。第一次构建可能会花费一些时间因为需要安装依赖项。 不做任何更改进行重建 现在在不更改源代码或 Dockerfile 的情况下重新运行 docker build 命令 docker build .后续构建由于缓存机制而变得更快只要命令和上下文保持不变。Docker 会缓存构建过程中生成的中间层。当你在不更改 Dockerfile 或源代码的情况下重新构建镜像时Docker 可以重用缓存的层从而显著加快构建过程。 [] Building 1.0s (9/9) FINISHED后续构建仅在 1.0 秒内完成通过利用缓存层无需重复耗时的步骤如安装依赖项。 步骤描述第一次运行时间第二次运行时间1从 Dockerfile 加载构建定义0.0 秒0.0 秒2加载 docker.io/library/node:20-alpine 的元数据2.7 秒0.9 秒3加载 .dockerignore0.0 秒0.0 秒4加载构建上下文 (上下文大小: 4.60MB)0.1 秒0.0 秒5设置工作目录 (WORKDIR)0.1 秒0.0 秒6将本地代码复制到容器中0.0 秒0.0 秒7运行 yarn install --production10.0 秒0.0 秒8导出层2.2 秒0.0 秒9导出最终镜像3.0 秒0.0 秒 优化 Dockerfile 为了避免每次构建都重新安装相同的依赖项可以重新组织 Dockerfile 以保持依赖项缓存的有效性除非确实需要使其失效。对于基于 Node 的应用程序依赖项定义在 package.json 文件中。你可以在该文件更改时重新安装依赖项但如果文件未更改则使用缓存的依赖项。因此首先复制 package.json 文件然后安装依赖项最后复制其他所有内容。这样只有在 package.json 文件更改时才需要重新创建 yarn 依赖项。 更新 Dockerfile 以首先复制 package.json 文件安装依赖项然后复制其他所有内容 FROM node:20-alpine WORKDIR /app COPY package.json yarn.lock ./ RUN yarn install --production COPY . . EXPOSE 3000 CMD [node, src/index.js]在与 Dockerfile 相同的文件夹中创建一个名为 .dockerignore 的文件内容如下 node_modules构建新镜像 docker build .输出如下 [] Building 16.1s (10/10) FINISHED[internal] load build definition from Dockerfile 0.0stransferring dockerfile: 175B 0.0s[internal] load .dockerignore 0.0stransferring context: 2B 0.0s[internal] load metadata for docker.io/library/node:21-alpine 0.0s[internal] load build context 0.8stransferring context: 53.37MB 0.8s[1/5] FROM docker.io/library/node:21-alpine 0.0sCACHED [2/5] WORKDIR /app 0.0s[3/5] COPY package.json yarn.lock ./ 0.2s[4/5] RUN yarn install --production 14.0s[5/5] COPY . . 0.5sexporting to image 0.6sexporting layers 0.6swriting image sha256:d6f819013566c54c50124ed94d5e66c452325327217f4f04399b45f94e37d25 0.0snaming to docker.io/library/node-app:2.0 0.0s现在修改 src/static/index.html 文件例如将标题更改为 “The Awesome Todo App”。 构建 Docker 镜像。此时你的输出应有所不同 docker build -t node-app:3.0 .输出如下 [] Building 1.2s (10/10) FINISHED [internal] load build definition from Dockerfile 0.0stransferring dockerfile: 37B 0.0s[internal] load .dockerignore 0.0stransferring context: 2B 0.0s[internal] load metadata for docker.io/library/node:21-alpine 0.0s [internal] load build context 0.2stransferring context: 450.43kB 0.2s[1/5] FROM docker.io/library/node:21-alpine 0.0sCACHED [2/5] WORKDIR /app 0.0sCACHED [3/5] COPY package.json yarn.lock ./ 0.0sCACHED [4/5] RUN yarninstall --production 0.0s[5/5] COPY . . 0.5s exporting to image 0.3sexporting layers 0.3swriting image sha256:91790c87bcb096a83c2bd4eb512bc8b134c757cda0bdee4038187f98148e2eda 0.0snaming to docker.io/library/node-app:3.0 0.0s首先你会注意到构建速度快了很多。你会看到多个步骤使用了之前缓存的层。这是个好消息你正在使用构建缓存。推送和拉取此镜像及其更新也会快得多。 通过遵循这些优化技术你可以加快 Docker 构建速度提高开发效率缩短迭代周期提高开发生产力。
http://www.dnsts.com.cn/news/216498.html

相关文章:

  • 自行车网站模板广州编程培训机构哪里好
  • 婚纱网站建设需求分析便宜做网站公司
  • 网站建设写什么经营范围wordpress建商城
  • 怎么在自己的电脑做网站西安做营销型网站
  • 我想找个人做网站2000个免费货源网站
  • 360提交网站备案wordpress project
  • 台州建站程序搬瓦工ss加wordpress
  • 做网站的上海公司有哪些郑州搜索引擎优化公司
  • 青岛正规网站建设哪家便宜网站建设+泰安
  • 网站网络推广策略和电子商务成都营销策划公司排行榜
  • 北京房山网站建设网站建设技术解决方案
  • 福州网站开发cms免费做网站页头图
  • 双色调网站教育局两学一做网站
  • 南阳网站推广招聘怎样重新下载wordpress
  • 宣讲家网站做四讲四有模范网站仿做
  • 什么学做网站潍坊云建站模板
  • 和布克赛尔网站建设北京acc网站建设
  • 百度移动网站建设有几种wordpress怎么修改抬头
  • 设计购物网站qq邮箱咋与网站绑定提醒
  • 哈尔滨做平台网站平台公司哪家好wordpress自定义页脚
  • 做视频网站把视频放在哪里找中国建筑集团有限公司校园招聘
  • 专业企业网站搭建推荐顺的网站建设咨询
  • 提供营销网站建设公司个人网站免费空间
  • 我的世界服务器如何做充钱网站天津网站建设公司推荐
  • 帕绍网站建设设计签名的小程序
  • 寄生虫网站怎么做网站免费模板制作
  • 有哪些可以建设网站的单位最近国际新闻热点
  • WordPress多页面菜单seo站内优化站外优化
  • 提供服务的网站家装网站建设多少钱
  • 网站建设论文读书笔记wordpress 4.5 模板