Есть ли способ установить любое приложение внутри контейнера докеров, только если оно не было установлено раньше?
Например;
RUN apt-get install -y nginx
Буду устанавливать nginx каждый раз при новой сборке. Как проверить, существует ли уже nginx? Если не установить еще, просто обновите или ничего не делайте. Возможно ли это как-нибудь? У меня есть веские причины нуждаться в nginx внутри другого контейнера, так как сейчас, чтобы все наладить и запустить, позже можно перейти к разделению nginx на собственный контейнер.
По умолчанию Docker сохраняет каждый шаг сборки. Итак, всякий раз, когда вы повторно создаете свой образ, Docker будет проверять его кеш и использовать его, если вы сделаете то же самое в том же состоянии.
Как сказал @jordanm, yum
и apt-get
также проверит, приложение уже установлено или нет. Итак, если вы это сделаете yum install nginx
дважды, он не будет повторно устанавливать nginx (если вы не сообщите yum
или apt-get
переустановить nginx).