一千萬個為什麽

搜索

如何將版本傳遞給docker-compose?



當我想要更新應用程序時, docker-compose downdocker-compose.yaml 中的版本發生變化,隨後應用程序啟動並且最新版本正在運行。

現在我想自動更新它。可以通過傳遞變量來更新版本嗎?

解決方法</強>

目前我使用 sed 來更新docker-compose文件,但我想知道是否有更簡單的方法。

轉載註明原文: 如何將版本傳遞給docker-compose?

一共有 2 個回答:

您可以使用環境變量,例如:

export VERSION=2

泊塢窗,compose.yml:

...
  serviceName:
    image: "imageName:${VERSION}"
  ....

執行@golfNintyNine答案的另一種方法是將docker-compose.yml放在環境變量中:

serviceName:
image: "imageName:${VERSION}"

然後執行簡單:

$ VERSION=2 docker-compose up

你也可以將所有內容放在腳本文件中,如下所示:

#!/bin/bash

function usage {
    cat << EOF >&2
Version argument is required, please use -v or --version.
EOF
    exit 1
}


OPTS=`getopt -o v: -l version: -- "[email protected]"`


if [ $? != 0 ] ; then usage ; fi

eval set -- "$OPTS"

while true; do
    case "$1" in
        -v | --version ) export VERSION="$2"; shift 2;;
        -- ) shift; break ;;
    esac
done

if [ -z $VERSION ]
then
    usage
fi

docker-compose up