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

Установить приложение внутри контейнера докеров, только если оно не было установлено раньше?

Есть ли способ установить любое приложение внутри контейнера докеров, только если оно не было установлено раньше?

Например;

RUN apt-get install -y nginx

Буду устанавливать nginx каждый раз при новой сборке. Как проверить, существует ли уже nginx? Если не установить еще, просто обновите или ничего не делайте. Возможно ли это как-нибудь? У меня есть веские причины нуждаться в nginx внутри другого контейнера, так как сейчас, чтобы все наладить и запустить, позже можно перейти к разделению nginx на собственный контейнер.

По умолчанию Docker сохраняет каждый шаг сборки. Итак, всякий раз, когда вы повторно создаете свой образ, Docker будет проверять его кеш и использовать его, если вы сделаете то же самое в том же состоянии.

Как сказал @jordanm, yum и apt-get также проверит, приложение уже установлено или нет. Итак, если вы это сделаете yum install nginx дважды, он не будет повторно устанавливать nginx (если вы не сообщите yum или apt-get переустановить nginx).