Назад | Перейти на главную страницу

Установите конкретную версию пакета yum или установите последнюю версию по умолчанию через переменную среды

Я знаю, что вы можете установить определенную версию пакета yum, используя <package name>-<version> как это:

yum install docker-engine-1.8.2

Но я пытаюсь настроить это с помощью переменной среды, чтобы, если она установлена, мы использовали эту версию, иначе мы использовали последнюю. Есть ли какой-нибудь псевдо-номер версии, такой как «последняя», который подойдет?

yum install docker-engine-${DOCKER_VERSION:-latest}

Очевидно, что использование последней версии не сработает, но есть ли что-нибудь эквивалентное? Обычно я бы просто использовал здесь условное if, но на самом деле это строка в Dockerfile, а не сценарий оболочки, поэтому он довольно ограничен в том, что он может делать.

Я обнаружил, что $ {VAR: + ...} позволит вам использовать "...", если переменная установлена, иначе она будет пустой. Таким образом, использование этого с $ {VAR: -...} дает мне то, что я ищу:

 yum install docker${DOCKER_VERSION:+-}${DOCKER_VERSION}

так что если DOCKER_VERSION установлен на "1.8.2" будет выглядеть так:

yum install docker-1.8.2

И если он не установлен, это будет выглядеть как

yum install docker