Сергей
а кто-нибудь telegraf юзает?
Khramov
Всем привет. Ребят, в чем может быть проблема, поднимаю docker registry локально для тестов, работает, но после перезапуска докера, регистри постоянно ребутается. В логах спамится вот это: Error: unknown command "-v" Run 'registry help' for usage. Запускаю вот так: docker run -d -p 5050:5000 --name registry --volume /data:/var/lib/registry registry:2
Sun
Это что-то у тебя внутри ящика неправильно
Khramov
Так образ официальный же, registry:2. На офф сайте так написано
Sun
Ну, давай методом исключения: если ты объебался бы с ключами, то ящик бы просто не запустился. Значит, косяк внутри.
Виталий
Всем привет. Уже переплевался, не могу подружить контейнер postgresql с контейнером python. postgres запускаю и линкую исходя из доки https://hub.docker.com/_/postgres/ Запускаю всё это дело на osx sierra. И вот что по итогу: could not connect to server: Connection refused: Is the server running on host "localhost" (127.0.0.1) and accepting TCP/IP connections on port 5432? could not connect to server: Cannot assign requested address. Is the server running on host "localhost" (::1) and accepting TCP/IP connections on port 5432? Инфу по докеру приложу отдельной пикчей. Может кто сталкивался? Помогите, а) Если что - тапками не кидаться, докер ковыряю только пару дней, многих моментов не знаю ещё.
Виталий
версия докера
Виталий
python пытается подключится к постгре по localhost:5432, тогда как должен подключатся по <linkname>:5432
Я правильно понимаю, что linkname это docker run --name application? Те мне в конфиге postgresql указывать не localhost а name контейнера?
Filipp
не совсем. нужно указывать имя, которое ты дал при линковке постгри в контейнер пайтона
Filipp
покажи просто как запускаешь, я покажу что да как
Filipp
линковка по сути пробрасывает IP контейнера в /etc/hosts
Filipp
ну и в сеть одну обьеденяет
Filipp
ага, тогда адрес подключения к бд будет "postgres:5432"
Filipp
проверь так ли написано в конфиге твоего пайтон проекта
Filipp
ой
Filipp
postgres*
gani
Вроде будет db и postgres, одновременно
Виталий
Ща, сбилжу - глянем
Filipp
Вроде будет db и postgres, одновременно
вполне возможно, как бонус, я такое наблюдал много раз
Виталий
Так, теперь другая could not connect to server: Connection refused. Is the server running on host "postgres" (172.17.0.2) and accepting TCP/IP connections on port 5432?
Виталий
Если указать хост db - тоже самое
Arsen
Так, теперь другая could not connect to server: Connection refused. Is the server running on host "postgres" (172.17.0.2) and accepting TCP/IP connections on port 5432?
Скрипт пробует подключиться сразу после старта постгреса? Обычно надо подождать несколько секунд
Виталий
Скрипт пробует подключиться сразу после старта постгреса? Обычно надо подождать несколько секунд
Вот блин, мужики, спасибо! @filipp_qoma за то, что указал на название линка @arsen за задержку, выставил delay 5 - всё взлетело
Виталий
Спасибо, рили! Весь вечер вчера на эту херню убил(
Arsen
Можно ещё между docker run'ами воткнуть что-нибудь вроде docker exec db bash -c "until pg_isready; do sleep 1; done"
Arsen
Если время критично
Alexander
Парни подскажите docker run -t -i -p 3306:3306 mysql mysql ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' Брал образ отсюда https://github.com/fideloper/docker-mysql
Filipp
хм, если надо ждать 5 сек, то это просто надо просто контейнеры в строгом порядке друг за дружкой запускать
Filipp
просто в след раз 5 секунд может не хватить))
Filipp
как то так
я вижу у тебя шел скриптик их запускает
Виталий
Пока да, compose пока решил не трогать, а то совсем мозгами двинусь
Artem
а зря, он удобнее чем все ручками каждый раз запускать
Filipp
> To use, edit the included build/setup.sh а файла то нету))
Alexander
критично именно этот образ? если нет - возьми официальный образ мускуля
Я этот образ расширять хочу, мне нужно чтоб mysql внутри контейнера все держал и заводился.
Filipp
недавно потратил часа два на сетап докер окружения для пет-проекта. и совсем забыл что хостится я буду на vps, которая сама по openvz технологии крутится. и кернел там 2.* и не обновится) и докер не запустить) попечалился и установил всё по старинке)))
Filipp
Я этот образ расширять хочу, мне нужно чтоб mysql внутри контейнера все держал и заводился.
сорь, не заметил что это твой репоз) "все держал" в смысле помимо БД что-то запускал/сторил?
Alexander
это не мой репозиторий)
Alexander
Ну проще говоря данные не с машины т.е. хватал. А внутри себя пусть и временно.
Alexander
Я пытался в ручну образ собрать свой нопостоянно натыкаюсь на ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
Alexander
и взяв это тоже ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
Filipp
извини, я не понял поставленной перед тобой задачи..)
Filipp
Я пытался в ручну образ собрать свой нопостоянно натыкаюсь на ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
если ты не планируешь выносить файлы БД за контейнер - то возьми алпайн или линукс-дистрибутив образ и установи мускуль самым обычным способом, как это бы ты делал года три назад. но, стоит тебе пересоздать контейнер - данные БД потеряются. чтоб они не потерялись - их выносят в вольюм. но между вольюмом и мускулем там какая-то старая мутка, давно читал... в общем, мускуль при старте может затереть то, что ты в вольюме хранишь. потому обычный "mysql" в CMD не катит и они написали огромный шел скрипт который умеет запускать мускуль аккуратно и правильно и так чтоб данные не затереть. повторять все эти ошибки очень долго и дорого, потому я советую не создавать образ с мускулем самому (если поиграться - то делай что хочешь, но потом выкинь), а воспольозоватся уже созданным
Filipp
@SoftAlex
Filipp
а кто-нибудь telegraf юзает?
коллега использует на проде, который на докере крутится
Виталий
Ребят, ещё вопрос. У меня есть контейнер с python приложением, хочу чтобы при запуске контейнера вызывались команды для миграций, запусков каких-то бэкграунд скриптов и тд, ну и наконец запуск самого апликейшна. RUN - запускается во время билда (что не подходит, потому что во время билда нет контейнера с базой данных и тд), CMD - указывается один раз на весь докерфайл и отвечает за запуск приложения в контейнере. Но мне перед этим нужно накатить миграции и тд. Как это реализуют вообще обычно?)
Filipp
> RUN - запускается во время билда важно добавить, что во время билда образа, но не контейнера
Pavel
> хочу чтобы при запуске контейнера вызывались команды для миграций как правило, так не делают (считается антипаттерном, в силу того, что миграции могут быть не только расширяющими модель и могут прибить какие-то важные данные)
Filipp
вот Павел правильно говорит
Filipp
+ у тебя в контейнере появляется несколько демонов. что тоже является антипатерном докер
Filipp
повалится бекграунд скрипт - как его запустить снова? перезапускать весь контейнер со всем внутри? это один из самых очевидных кейсов
Pavel
с демонами еще хуже, поскольку возможна ситуация "приложение сдохло, демон остался, контейнер остался"
Filipp
вот вот
Виталий
Так, забыл сказать. Приложение так сказать имутабельное. Я не буду накатывать миграции на существующую базу. Каждый запущенный контейнер - это новая база.
Виталий
Хорошо, а что тогда делать с бэкграунд скриптами?
Виталий
Есть какие-то хауту?
Filipp
пора батенька переходить на микросервис и MQ :D
Filipp
что за скрипты у тебя в бекграунде? это важно
Виталий
Ну я же говорю - само приложение по сути как микросервис. Я его буду запускать только когда оно мне нужно и данные мне там не важны. И тем более заморачиваться вынося бэкграунды в отдельный контейнер не хочу)
Pavel
тогда зачем ему вообще база?
Виталий
Ахахах, все это спрашивают) Но база нужна, так как данные в ней важны, когда приложение запущенно
Filipp
каждый бэкграуд скрипт делаешь демоном. на каждый демон - контейнер. MQ демон в своем контейнере как шина сообщений между ними.
Filipp
еще раз повторю вопрос, что за скрипты ты хочешь в бэке запускать помимо пайтон проекта?
Виталий
еще раз повторю вопрос, что за скрипты ты хочешь в бэке запускать помимо пайтон проекта?
ну там по минимуму, чисто переодическая опрашивалка API одного сервиса, но она работает в бэкграунде
Filipp
крон джобами балуешься?))
Filipp
ну даже такое можно сделать в отдельном контейнере, прилинковав БД, если ты в БД что-то пишешь если опрашиваемый АПИ сервер что-то важное вернул
Виталий
угу, чуть-чуть) так сложилось исторически, апу не я писал)
Pavel
это выглядит даже не как костыль, а как вольтрон из костылей :)
Filipp
можно еще вот как... supervisord установить)
Filipp
ну да)
Виталий
Да я хочу уже собрать наконец всё это дело, чтобы оно завелось уже наконец и не хочу править чужой гавнокод. Костыли не костыли - пофигу, соберись уже пожалуйста, прошу тебя, ну же, билд ало😭
Filipp
ну тогда :
Filipp
в CMD ставишь шел скрипт, который запускает приложенько, миграции, бэкграунд скрипты и заботишься чтоб этот шел скрипт не останавливался после необходимых тебе операций, а жил как демон. НО, все это что ты хочешь не очень хорошо
Виталий
Но вообще спасибо за помощь, очень отзывчивый чатик, как оказалось)
Serhii
на локальной машине запустил процес на порту(пусть это будет веб сервер на ноде), я могу как-то с образа докера , к примеру нжинкс, проксировать этот порт на другой? (сервисы поднимаю через докер-компоуз)