его контейнер (и образ по возможности) удалялись при завершении работы контейнера (выходе с кодом 0)?
Не уверен, что понял вопрос, но чтобы именно выходил: докерфайл редактировать. (Т.к через него определяется что происходит в контейнере). Через компоуз видел возможность только с отсутствием перезапуска. (Выполнил скрипт один раз, передал в окружение параметры/переменные, отвалился)
Не получится
я не спец в докере, просто вот такой сервис юзаю для миграций бд, и он создает дополнительный образ, думал его можно как-то чистить
Зачем для миграций отдельный образ?
Можно же мигрировать через вольюмы....
я бы хотел один раз с профилем запускать, типо полуавтоматика
У тебя уже есть образ с приложением. Просто используй его с кастомным command
Создаёшь новый вольюм, копируешь в него содержимое старого, передаешь с компоузом и докерфайлом. (Если мы о бд).
ты предлагаешь при каждом запуске команду миграции запускать?
а какие варианты еще есть? (я писал, что не спец)
Вероятно, я не сталкивался с более сложными миграциям, кроме переноса бд.
Я уже ответил в предыдущем сообщении. Нужно только внимательно прочитать
Зачем останавливать БД и создавать ее копию для выполнения миграций? Какую проблему это вообще решает?
Останавливать то зачем? Оно и на горячую не сильно матерится, если через докер делать. (Но я уже понял, что тут более сложный случай)
На горячую тем более, база могла ещё не сбросить данные на диск, и просто копирование файлов запущенной базы создаст либо копию старых данных, либо (наиболее вероятно) файлы будут битыми
я не совсем понимаю, ты бы command написал к основному сервису, а не юзал бы доп. образ? но это значит, что команда миграции будет запускаться при каждом docker compose up
Ты в курсе, что command в docker-compose.yml переопределяет значение, указанное в Dockerfile? Два command быть не может в принципе
именно, у меня приложение как раз так запускается, тогда как быть?
Ты не читаешь мои сообщения, зачем тебе отвечать
я читаю, может просто чего-то не понимаю. ну вот у меня сейчас для миграций образ создается, ты меня до этого спросил "Я о дополнительном образе для миграций, зачем он тебе" - ответ: сейчас он мне нужен, чтобы делать миграции с помощью необязательных профилей при запуске всех сервисов. "Просто используй его с кастомным command" - хочешь сказать, чтобы я прибавил мою команду миграции к команде запуска приложения? (но ведь у меня вольюмы на бд, и не нужно каждый раз миграции дергать)
Ты можешь использовать один образ для создания нескольких контейнеров
да, но вопрос, возможно ли другому сервису в рамках того же самого docker-compose.yaml использовать образ, который будет в нем создаваться?
каким образом? указывая в build имя образа или имя сервиса происходит ошибка
Собираешь образ отдельно, не через docker-compose, и указываешь его имя в сервисе
Обсуждают сегодня