日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Dockerfile 使用 ARG 参数实现构建模板

發布時間:2023/12/4 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Dockerfile 使用 ARG 参数实现构建模板 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Dockerfile 使用 ARG 參數實現構建模板

Intro

Dockerfile 里用來表示變量的主要有兩個東西,一個是 ENV 代表了環境變量,另外一個則是 ARG 代表是構建 docker 鏡像時的一個構建參數,需要在執行 docker build 命令時指定變量的值,最近使用了 ARG 來表示在 Dockerfile 里安裝 dotnet global tool 的版本

Sample

來看一個使用示例,下面是一個 Dockerfile 示例

FROM?mcr.microsoft.com/dotnet/runtime:6.0-alpine?AS?base LABEL?Maintainer="WeihanLi"FROM?mcr.microsoft.com/dotnet/sdk:6.0-alpine?AS?build-env #?dotnet-httpie?version,?docker?build?--build-arg?TOOL_VERSION=0.1.0?-t?weihanli/dotnet-httpie:0.1.0?. ARG?TOOL_VERSION RUN?dotnet?tool?install?--global?dotnet-httpie?--version?${TOOL_VERSION}FROM?base?AS?final COPY?--from=build-env?/root/.dotnet/tools?/root/.dotnet/tools ENV?PATH="/root/.dotnet/tools:${PATH}"

在上面的 Dockerfile 中我們聲明了一個 TOOL_VERSION 的參數,需要在 docker build 的時候通過 build-arg 來指定這個參數,如果不指定會報錯,因為我們并沒有指定默認值,你也可以在聲明的時候指定一個默認值 ARG TOOL_VERSION=1.0.0

實際 build docker 鏡像時使用下面的命令:

docker?build?--build-arg?TOOL_VERSION=0.1.0?-t?weihanli/dotnet-httpie:0.1.0?.docker?build?--build-arg?TOOL_VERSION=0.1.1-preview-20210829-075835?-t?weihanli/dotnet-httpie:0.1.1-preview-20210829-075835?.

可以看到實際安裝的?dotnet tool 版本就是 build 的時候指定的版本

More

很多人可能會想要問什么時候用 ARG 什么時候用 ENV 呢,剛好看到 StackOverflow 上的一個回答,可以參考:https://stackoverflow.com/questions/41916386/arg-or-env-which-one-to-use-in-this-case

如果你想在構建鏡像時自定義,那你應該考慮使用 ARG,因為 ARG 是構建時的參數,而 ENV 則是最終運行時容器的一個變量,你可以在 docker run 創建容器的時候指定環境變量的時,兩個參數屬于不同的階段,具體要看自己的需求了,根據需要靈活選擇

大名鼎鼎的 v2ray 在構建 docker 鏡像的時候也是選擇了使用 ARG 來動態地在構建鏡像時參數化,可以參考文末 v2ray 的鏈接

ARG 還有一些內置的參數,有需要可以參考文末 docker 的文檔

References

  • https://docs.docker.com/engine/reference/builder/#arg

  • https://github.com/WeihanLi/dotnet-httpie/blob/dev/Dockerfile

  • https://github.com/v2fly/docker/blob/master/Dockerfile

  • https://github.com/v2fly/docker/blob/master/.github/workflows/docker-push.yml

總結

以上是生活随笔為你收集整理的Dockerfile 使用 ARG 参数实现构建模板的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久久噜噜噜久久中文字幕色伊伊 | 日韩成人免费av | 国产18在线观看 | 成人动漫中文字幕 | 国产欧美综合视频 | 亚洲午夜一区二区三区 | 中文字幕一区二区人妻痴汉电车 | 美女被草视频在线观看 | 亚洲在线第一页 | 精品丰满人妻无套内射 | 91视频日本 | xvideos成人免费视频 | 色网站视频 | 亚洲综合在线中文字幕 | 丰满人妻一区二区三区四区53 | 欧美精品韩国精品 | 一区二区在线不卡 | 亚洲av成人无码一区二区三区在线观看 | 亚洲电影在线看 | 天天艹天天操 | 亚洲天堂区 | 欧美成人精品一区二区男人小说 | 一区二区免费在线视频 | 国产精品毛片一区二区 | 国产乱码精品一区二区三区精东 | 天天干天天爽 | 国产二区电影 | 777久久久精品一区二区三区 | 尤物视频网站在线观看 | 黄色香蕉网 | 狠操av| 色综合婷婷 | 亚欧美精品 | 成人免费观看视频网站 | 亚洲一区在线不卡 | 一色综合 | 在线播放一级片 | 国产情侣自拍一区 | 男女又爽又黄 | 日本成人a | 91第一页| 久久久资源 | 超碰碰97| 国产又粗又深又猛又爽又在线观看 | 亚洲视频一二三区 | 免费看h网站 | 在线色播 | 91传媒在线免费观看 | 欧美毛片在线观看 | 91精品国产99久久久久久红楼 | 成人免费观看av | 日韩欧美一区二区三区四区五区 | 狠狠网| 开元在线观看视频国语 | 亚洲一区二区av在线 | 蜜桃一区二区三区 | 国产香蕉一区 | 饥渴丰满的少妇喷潮 | 成人免费在线播放视频 | 处破女av一区二区 | 国产精品视频久久久久久久 | 欧美黄片一区二区三区 | 我要色综合网 | 黑人与日本少妇高潮 | 直接看的毛片 | 搡老熟女老女人一区二区 | 人妻少妇偷人精品无码 | av中字在线 | 成年人黄色免费网站 | 午夜激情电影在线观看 | 麻豆国产精品 | 黄色污污网站在线观看 | 国产日本视频 | 十八岁世界在线观看高清免费韩剧 | 色偷偷人人澡人人爽人人模 | 自拍一区在线 | 欧美日本一区二区三区 | 偷操| 欧美日韩精品综合 | 曰批又黄又爽免费视频 | 中文天堂网 | 欧美日韩久久久久 | 色播一区二区 | 麻豆极品| 国产成人精品一区二区三区 | 超碰人人在线 | 亚洲伦理久久 | 中文字幕一区二区在线播放 | 天天操天天看 | 日韩成人一区 | 国产一区精品无码 | 日韩成年人视频 | 加勒比av在线播放 | 久久色网站 | 日韩毛片在线 | 成人国产精品久久 | 日韩av在线播放一区 | 久久888 | 玖玖精品视频 |