Как в docker-compose перезапустить запущенный контейнер с пересборкой?

После редактирования Dockerfile или docker-compose.yml файла, например, прообрасывания порта или добавления волюма, изменения не вступают автоматически! Даже если сделать restart контейнера то всё-равно ничего не изменится. Чтобы применить изменения к контейнеру его нужно пересобрать (build).

How to rebuild docker container in docker-compose.yml?

Проще всего сделать это одной командой:

docker-compose up -d --no-deps --build nginx

На экран будет выведено что-то типа:

Recreating balancer_nginx_1 ...
Recreating balancer_nginx_1 ... done

И через несколько секунд контейнер с нужными свойствами будет запущен. Эта команда выполняет несколько действий: пересобирает образ, создаёт новый контейнер на основе нового образа, останавливает старый контейнер, запускает новый контейнер, удаляет старый контейнер.

Обратите внимание, т.к. контейнер будет пересоздан, все изменения в нём не сохранённые во внешние хранилища будут утеряны!

Если нужно будет пересобрать все сервисы, то можно запустить ту же команду без указания сервиса:

docker-compose up -d --no-deps --build

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *