docker-compose build
Только строит образы , но не запускает контейнеры.
Вот почему ваши изменения в файле Docker не применяются.Вы восстановили изображение, но не контейнер.Это причина, по которой ранее запущенный контейнер основан на более старой версии образа.
docker-compose up
Из документации Docker :
Если существуют существующие контейнеры для службы, а конфигурация или образ службы были изменены после создания контейнера,docker-compose up фиксирует изменения, останавливая и воссоздавая контейнеры (сохраняя подключенные тома).Чтобы запретить Compose принимать изменения, используйте флаг --no-воссоздать.
Чтобы убедиться, что ваше изображение и контейнер перестроены, вы должны добавить следующие флаги:
docker-compose up --force-recreate --build
Таким образом, ваши контейнеры основаны на правильной версии образа.
Объяснение флагов из Docker Документация :
--build Build images before starting containers.
--force-recreate Recreate containers even if their configuration
and image haven't changed.
Если вы хотитесделать это для конкретной службы, просто добавьте имя службы в конце командной строки:
docker-compose up --force-recreate --build serviceName
Еще один полезный флаг, если вы хотите очистить вывод, это флаг -d
:
-d, --detach Detached mode: Run containers in the background,
print new container names. Incompatible with