Docker всегда заставляет использовать кэшированное изображение - PullRequest
0 голосов
/ 08 ноября 2018

Я использую docker compose для создания своего приложения с использованием docker.

Версия docker-compose - 2.2

У меня все контейнеры работают нормально в тот момент, когда на одном из контейнеров работает nginx.

Мне нужно изменить некоторые настройки в этом контейнере.

Мне нужно сделать (из-за особого сценария) обновление конфига внутри контейнера.

Затем я фиксирую контейнер для создания нового образа.

docker commit <container> <image-name>

Теперь у меня есть новое изображение с тегом последней.

Я хочу использовать этот образ при запуске, docker-compose down && docker-compose up --build в следующий раз.

docker-compose down && docker-compose up --build -d

С опцией --build docker-compose будет выполнять шаги в Dockerfile и запускать их, и все мои изменения будут отменены.

Вопрос: В любом случае я могу сказать docker-compose использовать вновь созданный образ в качестве кэша и игнорировать Dockerfile для этого одного контейнера?

Решение проблемы: Я попытался с docker-compose-override и использованием опции cache-from, и она не работает.

docker-compose.override.yml

container:
    build:
      cache_from:
         - new-image:latest

Заранее спасибо.

1 Ответ

0 голосов
/ 08 ноября 2018

Я не понимаю, почему вы хотите создать образ из docker-compose, даже если вы уже создали его с помощью docker-commit.

Теперь у меня есть новое изображение с тегом последней. Я хочу использовать этот образ при запуске: docker-compose down && docker-compose up

Если вы уже создали образ, пропустите фазу build в docker-compose. Просто укажите, какое изображение должно использоваться следующим образом:

container:
    image: new-image:latest
    container_name: "Foo bar"
    .....(other options)

Изображение

Укажите изображение для запуска контейнера. Может быть хранилище / тег или частичный идентификатор изображения.

image: redis
image: ubuntu:14.04
image: tutum/influxdb
image: example-registry.com:4000/postgresql
image: a4bc65fd

Если изображение делает не существует, Compose пытается вытащить его, если вы также не указали построить, и в этом случае он строит его, используя указанные параметры и теги это с указанным тегом.

Если у вас есть другие образы, которые вы строите из docker-compose run:

docker-compose build && docker-compose up

Если не просто, то достаточно docker-compose up.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...