Я знаю, что вы можете установить конкретная версия пакета yum с использованием <имя пакета> - <версия>
, например:
yum install docker-engine-1.8.2
Но я пытаюсь настроить это с помощью переменной среды, чтобы, если она установлена, мы использовали эту версию , иначе мы используем последнюю версию. Есть ли какой-то псевдо-номер версии, такой как «последняя», который будет работать?
yum install docker-engine-${DOCKER_VERSION:-latest}
Очевидно, что использование «последней» не будет работать, но есть ли что-то эквивалентное? Обычно я бы просто использовал здесь условное if, но на самом деле это строка в Dockerfile, а не сценарий оболочки, поэтому он довольно ограничен в своих возможностях.
Я обнаружил, что ${VAR:+...} позволит вам использовать "...", если var установлен, иначе он будет пустым. Так что использование ${VAR:-...} дает мне то, что я ищу:
yum install docker${DOCKER_VERSION:+-}${DOCKER_VERSION}
так что если DOCKER_VERSION
установлен на "1.8.2" будет выглядеть как:
yum install docker-1.8.2
И если он не установлен, он будет выглядеть как
yum install docker