ShadoWalkeR
Господа, а есть способ заставить docker compose при выполнении up -d —build сначала собрать и запустить контейнер, а потом собирать и запускать зависимый от него
ShadoWalkeR
Да. Он пытается в этом порядке собирать не запуская
Konstantin
а для чего такое нужно?
ShadoWalkeR
У меня зависимый контейнер заливает данные при сборке - не хочется дробить команду
Konstantin
запускай отдельно
ShadoWalkeR
Ну то есть иначе никак. Печально 😞
Konstantin
1. docker compose up —build init_app 2. docker compose up —build
Sergey
1. docker compose up —build init_app 2. docker compose up —build
а если нужно пересобрать один контейнер то явно указывать его или docker-compose up -d можно сделать ?
Alex Sharov
привет
Alex Sharov
подскажите пожалуйста
Alex Sharov
пытаюсь запусть контейнер с таким ipc: --ipc="shareable"
Alex Sharov
на что получаю --ipc: invalid IPC mode.
Konstantin
хотя оба варианта работают, версия докера какая?
Anonymous
кто-то может объяснить смысл докера, если волюмы все равно надо хранить вне?
Anonymous
в итоге часть торчит наружу, часть в контейнере
Anonymous
типа для того чтобы данные между up/down персистилсь?
Anonymous
а вот у меня есть вопрос привет. Вот например можно же собрать компосером фласк и например монго дб в один контейнер ? не устанавливая ngnix туда ?
Anonymous
я просто пытаюсь понять докер так сказать))
Mentat
кто-то может объяснить смысл докера, если волюмы все равно надо хранить вне?
Если тебе не нужны данные, можешь не хранить снаружи. Волумы если тебе прям что-то от контейнера надо в данных сохранять и иметь, и возможно монтировать в другой контейнер, те это постоянные и переносимые данные.
Anonymous
компосер собирает не в один контейнер а объединяет их (логически)
Mentat
а вот у меня есть вопрос привет. Вот например можно же собрать компосером фласк и например монго дб в один контейнер ? не устанавливая ngnix туда ?
Можно, но это будет очень толстый и не best-practice контейнер, с которым жизнь твоя станет только хуже, поскольку придется туда затащить еще и систему инициализации. Тебе бы виртуалку с такими пожеланиями
Anonymous
компосер собирает не в один контейнер а объединяет их (логически)
ну тоесть вопрос тогда лучьше такой когда надо обьеденять контейнеры вместе с контейнером из под какогото linuxа например дебиан.
Mentat
тогда я не понимаю зачем докер , он же вроде ка кне плохая замена виртуалки
Докер не виртуалка, и никогда ей не был, Докер это упрощенно - красивая обертка для того, чтобы предсказумо, независимо от среды запустить 1 процесс с гарантированным его окружением.
Anonymous
тоесть как вобще имеет смысл собирать , мне например часто нужно чтобы я например накодил все в виртуалки а потом без боли перенес это на продакшен , чай нагрузки не большие
Johnny
кто-то может объяснить смысл докера, если волюмы все равно надо хранить вне?
одни сервисы (контейнеры) складывают данные в volume, другие берут. Захотел - запустил несколько копий и тех и других
Anonymous
а, понял
Anonymous
vagrant
можно конежно деплой штуками это все сделать но если есть докер , почему бы им ен воспользоваться
Anonymous
типа shareable
Anonymous
или я не понимаю зачем докер
Johnny
типа shareable
и scalable :)
Mentat
или я не понимаю зачем докер
Ты его пытаешься пристроить вместо виртуалок, а это вообще не его роль и цель
Anonymous
Ты его пытаешься пристроить вместо виртуалок, а это вообще не его роль и цель
ну вот например у меня есть скрипт с селиниумом на питоне , вот имеет ли смысл в докер залить гугл браузер, огнелиса питон и все библеотеки к нему а потом это все в продакшен ?
Mentat
ну вот например у меня есть скрипт с селиниумом на питоне , вот имеет ли смысл в докер залить гугл браузер, огнелиса питон и все библеотеки к нему а потом это все в продакшен ?
Селениум уже есть в докере, официально пакуется от разработчика. Можешь сделать контейнер который со скриптом управляющий селениумом через hub и взять офф контейнеры селениума с лисой, хромом в нужном количестве
Johnny
ну вот например у меня есть скрипт с селиниумом на питоне , вот имеет ли смысл в докер залить гугл браузер, огнелиса питон и все библеотеки к нему а потом это все в продакшен ?
у меня в одном контейнере хром, в другом прокси-сервер скрипт с ротацией прокси, другие скрипты(контейнеры) через puppeteer коннектятся к хрому
Anonymous
у меня в одном контейнере хром, в другом прокси-сервер скрипт с ротацией прокси, другие скрипты(контейнеры) через puppeteer коннектятся к хрому
а если я например скачаю контейнер с питоном и уставнолю туда библеотеки это возможно ? , или надо качать контейнерн с убунту ?
Johnny
а если я например скачаю контейнер с питоном и уставнолю туда библеотеки это возможно ? , или надо качать контейнерн с убунту ?
все возможно :) контейнер с питоном уже базируется на каком-то контейнере с ОС. Наверняка на хабре есть десяток примеров для начинающих питонистов-докеристов
ὦan
очень глупый вопрос
ὦan
когда стопим контейнер - содержимое внутри него удаляется?
Konstantin
А проверить нельзя?
Oleg
привет, запускаю django в docker с compose, нужно выполнить миграции после старта БД, depends_on: - db указан, но при выполнении команды через RUN в dockerfile выходит ошибка could not translate host name "db" to address: Name or service not known подскажите, как запустить миграции после старта базы?
Oleg
какой-нибудь sleep 3; в command мигратора
попробую, спасибо. Насколько это хорошее решение? :)
Sergey️
попробую, спасибо. Насколько это хорошее решение? :)
Ну там надо пердолиться со статусом контейнера иначе
Konstantin
попробую, спасибо. Насколько это хорошее решение? :)
depends вообще ненужное, задаёт приоритет контейнеров, а не то что внутри
Oleg
depends вообще ненужное, задаёт приоритет контейнеров, а не то что внутри
насколько я понимаю, означает, что сначла запустится база, потом приложение, как мне и надо. а наоборот, очевидно, не есть хорошо
Sergey
я после старта контейнеров через docker-compose exec создаю таблицы, это норм решение или автоматизировать можно ?
Sergey
во время билда в Dockerfile
дак он сразу создаёт пока ещё контейнер постгреса не стартанул
Sergey️
и композ
Александр
Само по себе решение выполнять миграции при старте контейнера так себе. А в Dockerfile - тем более. Зачем? Вы будете убивать контейнер для наката миграций что ли? Или пересобирать? А пользовательские данные? Не проще ли в приложении запустить миграции?
Sergey
Покажи dockerfile
я не за компом но вкратце в композе вэб приложение билдится и зависимости на бд и редис указаны а в докерфайле установка зависимостей и старт вэб сервера вообщем стандартный набор
Sergey
зависимости в смысле depends_on
Sergey️
и с проверкой есть ли эти базы
Sergey
в docker-compose своего вебсервера делаешь command с созданием баз
а вэб сервер стартует потом из докерфайла? какой приоритет ?
Sergey️
Сначала собирается докерфайл
Sergey️
Потом работает команда из compose
Sergey
Сначала собирается докерфайл
в конце которого CMD есть
Sergey️
в конце которого CMD есть
Откуда у тебя нет доступа к БД, ибо она не запущена
Sergey️
Покажи потом
Sergey
Покажи потом
хорошо завтра тогда скину
Johnny
в конце которого CMD есть
у меня именно так, только кейс иной. сначала запускается контейнер с mongodb, следом (depends_on) контейнер с CMD mimport и он импортирует данные из файла в базу, которая оказывается вполне себе запущенной
Sergey️
да depends_on не так пашет как хотелось бы))
Johnny
да depends_on не так пашет как хотелось бы))
у меня сработал, я доволен :)
Sergey
да depends_on не так пашет как хотелось бы))
все равно билдится в первую очередь
Sergey
потому что так бы в докерфайл засунуть команду на создание базы и все
Johnny
я конечно под сомнения слова гуру о бесполезности depends_on ставить не буду, но порядок запуска контейнеров мне помогает, сначала брокер очередей запускается, следом скрипт логгирования, все остальное, при другом порядке сыпятся ошибки
Кирилл
всем привет, есть вопрос, можно ли из контейнера как нибудь узнать имя сервиса в рамках docker-compose, например есть docker-compose.yml, на основе него создается сервис service1, можно ли из самого сервиса узнать его имя(service1), не создавая вручную env