日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

使用docker-compose構建鏡像并構建服務時,想為構建的鏡像統一加上指定版本

作者:為了我的架構師 更新時間: 2022-04-17 編程語言

在使用docker-compose構建鏡像并構建服務時,想為構建的鏡像統一加上指定版本

我們知道,單獨對Dockerfile打包鏡像的時候是可以指定名字和版本的

docker build -t 鏡像名:tag

但是,我們既然使用docker-compose了,就不可能一個一個去構建并且指定版本了。

但是,直接使用docker-compos文件的build命令去構建時,構建的鏡像版本都是latest

思路:通過設置變量達到替換(寫一個.env的文件),操作點在于image命令(image: test:${version:-2.0.0}),我們只需要給一個version即可,冒號后面是默認值。(當然這種變量的方式不僅僅用于鏡像版本)

比如:

docker-compose.yml:

base-gateway:
    build:
      context: ./
      dockerfile: ./base-gateway/Dockerfile
    restart: always
    container_name: base-gateway
    image: test:${VERSION:-2.0.0}
    ports:
      - 9999:9999
    depends_on:
      - base-nacos
    

.env文件

VERSION=2.0.0
MYSQL_HOST=172.16.0.104
MYSQL_USER=root
MYSQL_PASSWORD=root

即可,over

之前一直糾結,是因為,docker-compose文件中的image不是指定構建服務所用的鏡像嗎?按理說docker-compose.yml文件中的build打出來的鏡像是latest的啊,我們指定版本后docker發現本地沒有這個版本的鏡像,然后中央倉庫也找不到,它就會去修改latest為指定版本嗎?然后順理成章的用它來構建服務?沒有仔細觀察研究到。。。。

原文鏈接:https://blog.csdn.net/qq_42682745/article/details/122204054

欄目分類
最近更新