РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗dcPgDpIu 25 of 25 menu
◀

Обновление образа в Docker

Обновление образа берёт тот же тег postgres:18, том остаётся, тег latest не используют. Меняется слой программы, а каталог данных на /var/lib/postgresql остаётся подключённым как прежде.

Тег latest не подставляют вместо postgres:18: номер версии не должен прыгать неожиданно. Перенос тома на следующую мажорную версию образа здесь не разбирают - работают с тем же тегом и тем же dbdata.

Сервис db с паролем demo, базой app и томом dbdata выглядит так:

services: db: image: postgres:18 environment: POSTGRES_PASSWORD: demo POSTGRES_DB: app volumes: - dbdata:/var/lib/postgresql volumes: dbdata:

После первого подъёма создают таблицу notes и проверяют, что она на месте:

docker compose up -d docker compose exec db psql -U postgres -d app -c "CREATE TABLE notes (id INT PRIMARY KEY)" docker compose exec db psql -U postgres -d app -c "SELECT tablename FROM pg_tables WHERE tablename = 'notes'"

Сначала подтягивают образ командой docker compose pull, затем снова поднимают проект в фоне через docker compose up с флагом -d. Том dbdata не удаляют:

docker compose pull docker compose up -d

После подъёма таблица notes в базе app на месте - файлы в томе пережили обновление слоя образа.

Создайте таблицу pins в сервисе store на томе rev, подтяните образ postgres:18 и снова поднимите проект без удаления тома.

Убедитесь, что pins видна в базе app сервиса store после второго подъёма.

←
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить