[Docker] 使用 Dockerfile 的多级构建 (multi-stage builds)
Docker 构建 Dockerfile multi 多级 stage 使用
2023-09-14 09:02:29 时间
Multi-stage build 即在一个 Dockerfile 中使用多个 FROM 指令。
每个 FROM 指令可以使用不同的基础镜像,并且每一个都开启新的构建阶段。
你可以有选择地拷贝一个阶段的产品到另一个中,留下不想包含在最终 image 中的东西。
FROM golang:1.7.3 WORKDIR /go/src/github.com/alexellis/href-counter/ RUN go get -d -v golang.org/x/net/html COPY app.go . RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o app . FROM alpine:latest RUN apk --no-cache add ca-certificates WORKDIR /root/ COPY --from=0 /go/src/github.com/alexellis/href-counter/app . CMD ["./app"]
$ docker build -t alexellis2/href-counter:latest .
最终结果是同样小的生产环境 image,并显著减小了复杂性。
不需要创建任何中间 image,并且你不需要提取任何文件到本地系统中。
它是如何工作的?
1. 第二个 FROM 指令使用 alpine:latest 作为基础 image 开启一个新的构建阶段。
2. COPY --from=0 这一行拷贝前一个阶段构建的产品到这个新的阶段中。GO SDK 和其它中间产品被留下,并且不会被保存到最终的 image 中。
Other:Docker在线运行环境
相关文章
- 从零开始 - Docker部署前后端分离项目(二)
- docker-jenkins部署cmake自动构建[通俗易懂]
- Docker方式启动tomcat,访问首页出现404错误(第二篇 -- 将修改过的容器映射成镜像)
- docker 常用命令
- docker部署jenkins安装使用教程_docker封装python程序
- MySQL时区问题_docker设置时区
- 十年失眠架构师教你使用Docker来构建、运行、发布微服务
- Jenkins 构建的时候提示 DOCKER_HOST 错误
- docker的端口映射_外网远程桌面端口映射
- docker离线安装及配置tab补全_Docker安装
- 人工智能,丹青圣手,全平台(原生/Docker)构建Stable-Diffusion-Webui的AI绘画库教程(Python3.10/Pytorch1.13.0)
- 本地使用 Docker Compose 与 Nestjs 快速构建基于 Dapr 的 Redis 发布/订阅分布式应用
- 基于Wechaty+Docker打造一个ChatGPT机器人
- 【图文安装教程】在docker中安装kibana
- Docker 镜像与容器管理
- 「 【Docker】docker的基础使用介绍(小白如何使用docker) 」
- 「 【Docker】如何处理宝塔docker管理器未启动 」
- RabbitMQ学习笔记 - Docker部署
- 【Docker 系列】docker 学习六,探究一下数据卷容器
- docker-compose容器编排
- Docker - docker-compose搭建ELK服务
- docker镜像多阶段构建的原理以及好处
- 使用Docker在Ubuntu部署Redis
- django 项目部署用到的docker-compose 文件详解程序员
- 标题:构建 Docker 容器,体验 Redis 之美(dockerredis)
- Docker与k8s的恩怨情仇(一)—成为PaaS前浪的Cloud Foundry