|
|||||||
Как в docker-compose перезапустить запущенный контейнер с пересборкой
Время создания: 18.09.2018 16:16
Текстовые метки: docker rebuild
Раздел: Docker
Запись: Velonski/mytetra-database/master/base/1537269360hsmgm72cgo/text.html на raw.githubusercontent.com
|
|||||||
|
|||||||
После редактирования Dockerfile или docker-compose.yml файла, например, прообрасывания порта или добавления волюма, изменения не вступают автоматически! Даже если сделать restart контейнера то всё-равно ничего не изменится. Чтобы применить изменения к контейнеру его нужно пересобрать (build). How to rebuild docker container in docker-compose.yml? Проще всего сделать это одной командой: docker-compose up -d --no-deps --build nginx Copy На экран будет выведено что-то типа: Recreating balancer_nginx_1 ... Recreating balancer_nginx_1 ... done Copy И через несколько секунд контейнер с нужными свойствами будет запущен. Эта команда выполняет несколько действий: пересобирает образ, создаёт новый контейнер на основе нового образа, останавливает старый контейнер, запускает новый контейнер, удаляет старый контейнер. Обратите внимание, т.к. контейнер будет пересоздан, все изменения в нём не сохранённые во внешние хранилища будут утеряны! Если нужно будет пересобрать все сервисы, то можно запустить ту же команду без указания сервиса: docker-compose up -d --no-deps --build Copy Принудительно пересобрать docker-контейнер Если вы не делали никаких изменений в файлах Dockerfile или docker-compose.yml, но при этом поменяли содержимое файлов, которые добавляются в образ с помощью ADD, COPY или VOLUME во время сборки контейнера вы получите такое сообщение при попытке пересборки: project_service_1 is up-to-date Copy Если действительно нужно перезапустить контейнер потеряв всё его состояние не сохранённое во внешние источники, например, в волюмы, то достаточно добавить в команду аргумент —force-recreate: docker-compose up --force-recreate -d php |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|