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

网站地图 格式2021年简短新闻20字

网站地图 格式,2021年简短新闻20字,天津黄页企业名录,金华在线制作网站前言 多阶段构建#xff08;Multi-stage builds#xff09;是从 Docker 17.05 版本开始引入的功能。这个功能允许在单个 Dockerfile 中定义多个构建阶段#xff0c;并且在最终镜像中只包含所需的内容#xff0c;从而减小镜像的大小。通过多阶段构建#xff0c;可以将构建…前言 多阶段构建Multi-stage builds是从 Docker 17.05 版本开始引入的功能。这个功能允许在单个 Dockerfile 中定义多个构建阶段并且在最终镜像中只包含所需的内容从而减小镜像的大小。通过多阶段构建可以将构建环境和运行环境分开使得最终的镜像更加轻量化减少了不必要的依赖和文件 使用多阶段构建 # syntaxdocker/dockerfile:1 FROM golang:1.21 WORKDIR /src COPY EOF ./main.go package mainimport fmtfunc main() {fmt.Println(hello, world) } EOF RUN go build -o /bin/hello ./main.goFROM scratch COPY --from0 /bin/hello /bin/hello CMD [/bin/hello] 如上例子可以有两个或多个 FROM 关键字第一个 FROM 阶段作的事相当于把程序编译成一个二进制文件第二个 FROM 阶段从第一阶段拷贝编译后的产物这样最终生成镜像的体积因为丢弃了编译阶段的依赖了就小了很多 命名构建阶段 上面的例子因为没有设置别名默认情况 docker 内部会给每一个 FROM 按顺序从 0 开始自增设置编号所以我们用了 COPY --from0 /bin/hello /bin/hello这样的方式来引用这样缺点在于如果构建阶段的顺序发生了变化那么我们引用的编号也要修改这样就不够优雅了好在支持设置别名功能将上面的例子改造后如下 # syntaxdocker/dockerfile:1 FROM golang:1.21 as build WORKDIR /src COPY EOF /src/main.go package mainimport fmtfunc main() {fmt.Println(hello, world) } EOF RUN go build -o /bin/hello ./main.goFROM scratch COPY --frombuild /bin/hello /bin/hello CMD [/bin/hello] 构建部分阶段 多阶段构建支持构建部分 FROM 的内容这样可以方便调试比如我想看下编译后的内容就没必要每次还得执行编译后的其他阶段使用方法如下 docker build --target build -t hello . 从外部镜像作拷贝数据 前面我们都是从上一个 FROM 阶段拷贝的数据假如我已经有现成的镜像了在使用 FROM 拷贝就略显得臃肿了好在 COPY --from 指令支持从单独的镜像本地或远程里面拷贝数据使用如下 COPY --fromnginx:latest /etc/nginx/nginx.conf /nginx.conf 这个功能非常有用假如我们应用镜像运行时依赖多个中间件才能正常工作那么传统的做法需要做一个大而全的基础镜像通过这种方式我们就可以组合出更灵活按需适配的场景从而大幅度减小优化镜像的体积 使用上一阶段作为新阶段 这个很简单就是可以使用上一阶段构建完的结构作为新的阶段的起步依赖例子如下 # syntaxdocker/dockerfile:1FROM alpine:latest AS builder RUN apk --no-cache add build-baseFROM builder AS build1 COPY source1.cpp source.cpp RUN g -o /binary source.cppFROM builder AS build2 COPY source2.cpp source.cpp RUN g -o /binary source.cpp BuildKit和普通的builder的区别 BuildKit 于 Docker 18.09 版本开始引入。BuildKit 旨在提供更快速、更灵活、更安全的构建体验以及更好的多阶段构建支持。 BuildKit 仅仅构建其依赖的前置而 builder 则会构建所有依赖如下例子 # syntaxdocker/dockerfile:1 FROM ubuntu AS base RUN echo baseFROM base AS stage1 RUN echo stage1FROM base AS stage2 RUN echo stage2 激活 BuildKit 后仅仅需要构建 base和 stage2 即可 DOCKER_BUILDKIT1 docker build --no-cache -f Dockerfile --target stage2 . 没激活 BuildKit 后则需要构建 basestage1 和 stage2 DOCKER_BUILDKIT0 docker build --no-cache -f Dockerfile --target stage2 . 总结 使用多阶段构建可以帮助优化和简化容器镜像的构建过程减小镜像大小简化构建流程提升构建灵活性加速构建速度优化镜像层次结构减少依赖关系从而提高了容器化应用程序的部署效率和性能
http://www.pierceye.com/news/223051/

相关文章:

  • 西安网站外包上海网站被查
  • 建简单网站高端建筑铝型材
  • wordpress 网站访问量高端建筑物图片
  • seo网站推广目的WordPress灯箱效果移动适配
  • 梅州正规的免费建站微信应用开发公司
  • 百度做网站教程网站建设与维护ppt
  • 化妆品网站建设方案做咩有D网站响网吧上不了
  • 网站 迁移房地产销售基础知识大全
  • 门户网站建设汇报材料网站开发与制作中期报告
  • 网站建设可以自己弄吗知乎做网站必须要服务器吗
  • 怎么制作自己的小程序专业seo整站优化
  • 做网站是干什么用的苏宁易购网站上的营销页面
  • 浪网站制作网站开发是无形资产
  • 做阿里巴巴网站可以贷款吗seo如何快速排名百度首页
  • 公司做网站都咨询哪些问题网站平台建设视频教学
  • 西安电子商务网站建设网站里面的链接怎么做
  • 郑州陆港开发建设有限公司网站58招商加盟项目
  • 徐州高端网站建设个人网站设计首页界面
  • 山西企业建站系统平台关键词 优化 网站
  • 地板网站建设方案有什么做美食的网站
  • 网站建设丶金手指专业网站幻灯片 字段
  • 网站开发技术总结干完房产中介整个人废了
  • iis建站安装wordpress对网站建设的评价语
  • 网站开发网站建设公司二手房网
  • 72建站网如何建设一个药材网站做网站的费用 可以抵扣吗
  • 四川通信建设工程有限公司网站做企业网站需要服务器么
  • 福田建网站费用烟台招远网站建设
  • 上海网站开发建设电话丹东市做网站
  • 外贸网站 免费模板 使用 zencart做新闻类网站
  • 呼和浩特网站推广大德通网站建设