docker镜像多阶段构建

news2024/12/22 9:40:44

Docker 多阶段构建是为了创建轻量化和更高效的 Docker 镜像而产生的一种技术。通过使用多阶段构建,可以将不同阶段的构建需求分离开来,最终结果只包含实际部署所需要的部分,从而缩小镜像的大小。

以下是使用多阶段构建的基本步骤:

初始构建阶段:构建需要完整环境和工具的部分,如编译代码。
最终构建阶段:从初始阶段复制所需文件,只保留运行时所需的部分。

一个简单的例子
假设你有一个简单的 Go 应用程序。使用多阶段构建来创建其 Docker 镜像。

app.go

package main

import "fmt"

func main(){
    fmt.Printf("Hello World!");
}

Dockerfile

#阶段1
FROM golang:1.16
WORKDIR /go/src
COPY app.go ./
RUN go build  -o myapp app.go
#阶段2
FROM scratch
WORKDIR /server
COPY --from=0 /go/src/myapp ./
CMD ["./myapp"]


docker build --no-cache  -t server_app:v2 . -f Dockerfile.build

在这里插入图片描述
或者这样写

#阶段1
FROM golang:1.16 as builder
WORKDIR /go/src
# 复制源码并编译
COPY app.go ./
RUN go build  -o myapp app.go
#第二阶段:仅包含运行时环境
FROM scratch
WORKDIR /server
# 从构建阶段复制编译好的可执行文件
COPY --from=builder /go/src/myapp ./
# 指定启动命令
CMD ["./myapp"]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2106601.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot项目初始化搭建

SpringBoot项目搭建 创建SpringBoot项目事务编程式事务声明式事务 PageHelper主要特点:依赖使用常用方法 跨域问题JSONP(JSON with Padding)工作原理:代码示例 CORS(Cross-Origin Resource Sharing)工作原理…

江协科技STM32学习- P11 中断系统,EXTI外部中断

🚀write in front🚀 🔎大家好,我是黄桃罐头,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝​…

网络ACL详解-从原理到实战模拟

引言 在复杂多变的网络环境中,保障网络安全和数据传输的合法性、高效性至关重要。访问控制列表(Access Control Lists,简称ACL)作为网络安全的重要组成部分,广泛应用于各种网络设备中,用以控制网络流量的流…

传输大咖39 | 半导体行业的FTP替代升级方案

在半导体行业,数据的快速、安全、稳定传输是研发和生产的关键。传统的FTP(文件传输协议)虽然在早期被广泛使用,但随着行业的发展,其局限性逐渐显现。本文将探讨传统FTP在半导体行业的不足,并介绍镭速提供的…

【JAVA入门】Day31 - 双列集合 —— Map 系列

【JAVA入门】Day31 - 双列集合 —— Map 系列 文章目录 【JAVA入门】Day31 - 双列集合 —— Map 系列一、双列集合体系结构二、Map 的遍历方式2.1 键找值2.2 键值对遍历2.3 Lambda 表达式遍历键值对 三、HashMap3.1 HashMap的创建 四、LinkedHashMap五、TreeMap 单列集合每次添…

Excel使用VLOOKUP公式匹配不出正确公式,返回#N/A

问题: Excel使用VLOOKUP公式匹配不出正确公式,返回#N/A 原因: 原数据和匹配的数据格式不一致 解决办法: 把格式都设置为文本。 例如添加一列,输入英文符号,然后把数据源拼接起来,转换为文…

3招解决苹果手机qq图片恢复问题,快速恢复原图

Q:我手机QQ上的图片打不开了,怎么办呢?你有什么方法可以帮我解决这个问题吗? A:当然有啦,小编在数据恢复这个方面可是很厉害的。今天,小编就告诉你3个超绝的QQ图片恢复的小妙计,可以…

九盾叉车U型区域警示灯,高效照明和安全警示

叉车运作的环境比较复杂,在方便人们物流运输的同时也存在着很大的安全隐患,特别是叉车碰撞人的事故发生率很高,那我们该怎么在减少成本的同时又能避免碰撞事故的发生呢? 九盾叉车U型区域警示灯,仅需一盏灯安装在叉车尾…

有人送出几百克黄金,有人搭上百万!现在快递也不敢收了?

还记得一年多前小柴遇到过个这样的事,有一天早上,小柴还没睡醒,就被一京东小哥的敲门声吵醒了! 小柴当时揉着眼睛,稀里糊涂的签收了这小哥送来的两个快递,没成想,不到一分钟的时间,…

基于多模态大语言模型的摄像头实时感知交互

简介: 调用本地摄像头,通过多模态大语言模型实时感知世界,并进行交互 界面: 代码: import tkinter as tk from tkinter import ttk from PIL import Image, ImageTk import cv2 import requests# 定义处理函数 def…

从源码到应用:数字药店系统与医保购药APP的开发实践

本篇文章,我们将深入探讨数字药店系统的开发过程,并介绍医保购药APP如何通过源码设计实现从基础功能到完整应用的转化。 一、数字药店系统概述 数字药店系统是一种基于互联网技术开发的在线药品销售与管理平台,通常包括药品展示、在线购买、…

NAT技术介绍+缺陷(内网穿透+工具),NAPT(介绍,替换过程,原理,NAT转换表)

目录 NAT技术 介绍 NAT转换表 引入 介绍 NAPT技术介绍 NAPT替换过程 NAPT原理 注意点 NAT缺陷 无法直接访问其他内网主机 内网穿透 工具 其他 NAT技术 介绍 NAT 是一种网络技术,它允许在一个公共 IP 地址和多个私有 IP 地址(入口路由器的wan口地址 …

屋顶上的气膜体育馆:商场创新的引流利器—轻空间

现代都市生活中,商场已成为不可或缺的一部分。然而,在竞争激烈的市场环境中,能够脱颖而出的商场往往依赖于独特的经营策略和创新的理念。上海嘉定某商场正是凭借其巧妙的创新思路,成功吸引了大量顾客,成为区域内的商业…

cc-proxy 常见几种代理场景

背景: 某项目全部内网环境,只有跳板机有访问互联网的权限,现在需要给内网的服务器更新系统,以及在线下载docker镜像 之前,使用过cc-proxy 这样的工具,当然现在这个工具已经停止维护了,使用完之…

2024源代码加密软件推荐,11款超好用的源代码加密软件推荐!

在数字化时代,源代码加密软件成为了保护企业与开发者心血的坚实盾牌。随着网络安全威胁的日益增多,选择一款高效、可靠的源代码加密工具变得至关重要。2024年,技术的迭代让加密软件更加成熟, 1.安秉源代码加密软件 安秉源代码加…

手机玩赛博朋克2077教程 GameViewer远程助你手机随时随地玩3A大作 手机怎么玩赛博朋克

手机居然也能玩赛博朋克2077,实现手机玩主机3A大作?如果你想用手机随时随地玩赛博朋克2077,可以用网易GameViewer远程实现。GameViewer远程作为一款专为游戏玩家打造的远程控制软件,让你随时随地畅玩电脑游戏,无论是手…

云原生 | 在 Kubernetes 中使用 Cilium 替代 Calico 网络插件实践指南!

[ 知识是人生的灯塔,只有不断学习,才能照亮前行的道路 ] 0x00 简述介绍 什么是 Cilium? Cilium 是一款开源软件,它基于一种名为eBPF的新的Linux内核技术提供动力,用于透明地保护使用 Docker 和 Kubernetes 等Linux 容器管理平台中部署的应用程序服务之间的网络连接,Ciliu…

数据分析——基础

目录 一、什么是数据分析 1、什么是数据 2、数据分析 2.1 数据分析概念 2.2 数据分析要结合的维度 2.3 数据分析的目的 二、数据分析流程 三、不同需求下对应的数据呈现形式 四、数据分析的几种常见方法 一、什么是数据分析 1、什么是数据 是对客观事物的性质、状态以…

还不知道如何使用CHAT GPT?您 OUT 了!

别忘了,戳这个连接,重要的连接放三遍,你值得拥有!!! https://ai.ashuiai.com/auth/register?inviteCodeXT16BKSO3Shttps://ai.ashuiai.com/auth/register?inviteCodeXT16BKSO3S https://ai.ashuiai.com…

别让质量问题拖垮您的企业,快看看这些隐藏的风险

质量问题的严重性 在企业运营中,质量问题往往是致命的隐患。一旦产品质量出现纰漏,可能会导致客户流失、品牌声誉受损,甚至带来巨大的经济损失。质量问题不仅影响短期业绩,更可能动摇企业的根基,拖垮整个业务。无论您是…