Как Передать Версию В Docker-Compose?

  • Автор темы Tester114
  • Обновлено
  • 19, Oct 2024
  • #1

Если я хочу обновить приложение в данный момент, sed , the version in the docker-compose.yaml изменяется, после чего приложение запускается и работает последняя версия.

Теперь я хотел бы обновить его автоматически. Можно ли обновить версию, передав переменную?

Обходной путь

На данный момент я использую docker-compose down to update the docker-compose file, but I wonder whether there is an easier approach.

#docker-compose

Tester114


Рег
17 Jan, 2016

Тем
72

Постов
219

Баллов
619
  • 25, Oct 2024
  • #2

Вы можете использовать переменные среды, например:

 
 
 
 
 #!/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: -- "$@"`

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
 

докер-compose.yml:

$ VERSION=2 docker-compose up ||answer||

Другой способ выполнить ответ @golfNintyNine — поместить в docker-compose.yml переменную среды:

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

А затем выполните просто:

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

Также вы можете собрать все вместе внутри файла сценария следующим образом:

export VERSION=2
 

Diofan


Рег
11 Dec, 2003

Тем
69

Постов
213

Баллов
568
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно