成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

多階段構(gòu)建Golang程序Docker鏡像方法詳解

開發(fā) 前端
現(xiàn)在基本都是采用容器化部署方式,打包出的鏡像體積越小越好,和程序運(yùn)行無(wú)關(guān)的東西越少越好。所以打包Golang程序Docker鏡像時(shí),最好的做法是只將編譯好的Golang程序二進(jìn)制文件打包進(jìn)鏡像即可。

為什么要多階段構(gòu)建

大家都知道Golang是編譯型語(yǔ)言,源碼需要先編譯再運(yùn)行,編譯過(guò)程中需要下載依賴包,最終編譯成可執(zhí)行的二進(jìn)制文件,只需要部署這個(gè)二進(jìn)制文件即可運(yùn)行。

現(xiàn)在基本都是采用容器化部署方式,打包出的鏡像體積越小越好,和程序運(yùn)行無(wú)關(guān)的東西越少越好。所以打包Golang程序Docker鏡像時(shí),最好的做法是只將編譯好的Golang程序二進(jìn)制文件打包進(jìn)鏡像即可。

如果要做到這一點(diǎn)的話,就需要使用多階段構(gòu)建Docker鏡像方法了。首先基于一個(gè)有Golang編譯環(huán)境的基礎(chǔ)鏡像編譯出Golang程序的二進(jìn)制文件,然后將二進(jìn)制文件打包到用于運(yùn)行環(huán)境的基礎(chǔ)鏡像中。

代碼示例

FROM golang:1.19 AS builder
WORKDIR /project
ADD . .
RUN go build main.go

FROM debian:stable-slim  
WORKDIR /app
COPY --from=builder /project/main .
CMD ["./app/main"]

語(yǔ)法非常簡(jiǎn)單,需要注意兩個(gè)點(diǎn):

  • From,開啟一個(gè)新的build階段,可以使用as為當(dāng)前stage指定一個(gè)名字,如果沒有指定名字的話默認(rèn)從0開始;
  • Copy,默認(rèn)從本地目錄復(fù)制文件或文件夾到docker image,如果有--from,則會(huì)從指定的docker stage或其他docker image中復(fù)制,例如--from=builder、--from==0(沒有使用as為當(dāng)前stage命名的情況下默認(rèn)為0)。

小結(jié)

多階段構(gòu)建Docker鏡像有如下幾點(diǎn)好處:

  • 減小鏡像體積:多階段構(gòu)建可以在一個(gè)Dockerfile文件中使用多個(gè)FROM指令從不同的鏡像中構(gòu)建不同階段的鏡像,在最后一階段中只保留應(yīng)用程序所需的文件和運(yùn)行時(shí)環(huán)境,減小了鏡像的大小。
  • 提高構(gòu)建效率:在多階段構(gòu)建中,因?yàn)橹恍枰谧詈笠浑A段中打包需要的文件,從而避免了在構(gòu)建過(guò)程中不必要的文件和依賴項(xiàng),并且避免了為每個(gè)構(gòu)建層創(chuàng)建新的容器。
  • 更易維護(hù):多階段構(gòu)建可以將不同的構(gòu)建階段獨(dú)立出來(lái),從而簡(jiǎn)化了維護(hù)過(guò)程。如果需要更改其中一個(gè)階段,那么只需要改變?cè)撾A段的Dockerfile文件即可。
  • 更安全:多階段構(gòu)建可以避免同時(shí)在一個(gè)容器中安裝和運(yùn)行多個(gè)不同的應(yīng)用程序和軟件工具所帶來(lái)的潛在安全風(fēng)險(xiǎn)。
責(zé)任編輯:姜華 來(lái)源: 今日頭條
相關(guān)推薦

2017-11-13 17:17:11

Docker鏡像Go

2024-03-04 14:51:13

Golang鏡像二進(jìn)制文件

2023-02-08 13:08:31

2022-11-03 10:28:43

Docker

2025-03-20 10:07:55

2023-12-04 16:18:30

2023-04-09 16:31:30

Phaser工具Java

2017-11-21 14:34:30

2020-03-30 21:32:50

物聯(lián)網(wǎng)IOT多階段驗(yàn)證

2023-12-29 07:04:28

Go項(xiàng)目Docker編寫

2025-03-26 02:00:00

C#Docker開發(fā)

2018-08-19 09:15:25

MongoDBGo 微服務(wù)

2019-06-05 10:27:26

UCloud徐亮

2022-03-28 08:41:27

惡意軟件勒索軟件網(wǎng)絡(luò)攻擊

2022-09-08 18:41:34

惡意軟件ShikitegaLinux

2020-06-08 14:44:56

SIM卡攻擊交換攻擊

2023-04-28 07:56:09

2022-03-04 19:07:03

模型視覺人工智能
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 精品国产乱码久久久久久蜜柚 | 色婷婷狠狠 | 久久久久国产 | 精品国产黄a∨片高清在线 成人区精品一区二区婷婷 日本一区二区视频 | 日韩在线一区二区三区 | 久久久久久久久一区 | 欧美激情a∨在线视频播放 成人免费共享视频 | 一级毛片色一级 | 亚洲国产日韩欧美 | 日韩欧美中文字幕在线视频 | 国产在线一区二区 | 国产成人综合在线 | 欧美精品日韩精品国产精品 | 亚洲码欧美码一区二区三区 | 日本一区二区不卡 | 国产精品一区在线观看 | 国产欧美日韩视频 | 拍拍无遮挡人做人爱视频免费观看 | 国产精品久久久久久久久久免费看 | 99精品国产一区二区三区 | 7777精品伊人久久精品影视 | 亚洲精品一区二区网址 | 精品在线观看一区 | 夜夜爽99久久国产综合精品女不卡 | 久久精品国产a三级三级三级 | 成人在线视频网站 | 在线观看成人精品 | 羞羞网站免费观看 | 在线播放一区二区三区 | 亚洲国产成人精品久久久国产成人一区 | 欧洲国产精品视频 | 97国产精品视频人人做人人爱 | 毛片免费在线 | 国产免费一区二区三区 | 久久久久国产一区二区三区 | 欧美美乳 | 中文字幕免费在线 | 日韩中文字幕视频在线 | 欧美xxxx在线| 麻豆精品国产免费 | 一区视频在线免费观看 |