Сергей
а кто-нибудь 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?
Инфу по докеру приложу отдельной пикчей.
Может кто сталкивался? Помогите, а) Если что - тапками не кидаться, докер ковыряю только пару дней, многих моментов не знаю ещё.
Виталий
Filipp
Filipp
не совсем. нужно указывать имя, которое ты дал при линковке постгри в контейнер пайтона
Filipp
покажи просто как запускаешь, я покажу что да как
Filipp
линковка по сути пробрасывает IP контейнера в /etc/hosts
Filipp
ну и в сеть одну обьеденяет
Виталий
Filipp
ага, тогда адрес подключения к бд будет "postgres:5432"
Filipp
проверь так ли написано в конфиге твоего пайтон проекта
Filipp
ой
Filipp
postgres*
gani
Вроде будет 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
Виталий
Спасибо, рили! Весь вечер вчера на эту херню убил(
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
Filipp
> To use, edit the included build/setup.sh
а файла то нету))
Filipp
недавно потратил часа два на сетап докер окружения для пет-проекта. и совсем забыл что хостится я буду на vps, которая сама по openvz технологии крутится. и кернел там 2.* и не обновится) и докер не запустить) попечалился и установил всё по старинке)))
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
Dan
Виталий
Ребят, ещё вопрос.
У меня есть контейнер с python приложением, хочу чтобы при запуске контейнера вызывались команды для миграций, запусков каких-то бэкграунд скриптов и тд, ну и наконец запуск самого апликейшна. RUN - запускается во время билда (что не подходит, потому что во время билда нет контейнера с базой данных и тд), CMD - указывается один раз на весь докерфайл и отвечает за запуск приложения в контейнере. Но мне перед этим нужно накатить миграции и тд. Как это реализуют вообще обычно?)
Filipp
> RUN - запускается во время билда
важно добавить, что во время билда образа, но не контейнера
Filipp
Ребят, ещё вопрос.
У меня есть контейнер с python приложением, хочу чтобы при запуске контейнера вызывались команды для миграций, запусков каких-то бэкграунд скриптов и тд, ну и наконец запуск самого апликейшна. RUN - запускается во время билда (что не подходит, потому что во время билда нет контейнера с базой данных и тд), CMD - указывается один раз на весь докерфайл и отвечает за запуск приложения в контейнере. Но мне перед этим нужно накатить миграции и тд. Как это реализуют вообще обычно?)
в CMD ставишь шел скрипт, который запускает приложенько, миграции, бэкграунд скрипты и заботишься чтоб этот шел скрипт не останавливался после необходимых тебе операций, а жил как демон.
НО, все это что ты хочешь не очень хорошо
Pavel
> хочу чтобы при запуске контейнера вызывались команды для миграций
как правило, так не делают (считается антипаттерном, в силу того, что миграции могут быть не только расширяющими модель и могут прибить какие-то важные данные)
Filipp
вот Павел правильно говорит
Filipp
+ у тебя в контейнере появляется несколько демонов. что тоже является антипатерном докер
Filipp
повалится бекграунд скрипт - как его запустить снова? перезапускать весь контейнер со всем внутри? это один из самых очевидных кейсов
Pavel
с демонами еще хуже, поскольку возможна ситуация "приложение сдохло, демон остался, контейнер остался"
Filipp
вот вот
Виталий
Так, забыл сказать. Приложение так сказать имутабельное. Я не буду накатывать миграции на существующую базу.
Каждый запущенный контейнер - это новая база.
Виталий
Хорошо, а что тогда делать с бэкграунд скриптами?
Виталий
Есть какие-то хауту?
Filipp
пора батенька переходить на микросервис и MQ :D
Filipp
что за скрипты у тебя в бекграунде? это важно
Виталий
Ну я же говорю - само приложение по сути как микросервис. Я его буду запускать только когда оно мне нужно и данные мне там не важны. И тем более заморачиваться вынося бэкграунды в отдельный контейнер не хочу)
Pavel
тогда зачем ему вообще база?
Виталий
Ахахах, все это спрашивают)
Но база нужна, так как данные в ней важны, когда приложение запущенно
Filipp
каждый бэкграуд скрипт делаешь демоном. на каждый демон - контейнер. MQ демон в своем контейнере как шина сообщений между ними.
Filipp
еще раз повторю вопрос, что за скрипты ты хочешь в бэке запускать помимо пайтон проекта?
Filipp
крон джобами балуешься?))
Filipp
ну даже такое можно сделать в отдельном контейнере, прилинковав БД, если ты в БД что-то пишешь если опрашиваемый АПИ сервер что-то важное вернул
Виталий
угу, чуть-чуть) так сложилось исторически, апу не я писал)
Pavel
это выглядит даже не как костыль, а как вольтрон из костылей :)
Filipp
можно еще вот как... supervisord установить)
Pavel
Filipp
ну да)
Виталий
Да я хочу уже собрать наконец всё это дело, чтобы оно завелось уже наконец и не хочу править чужой гавнокод. Костыли не костыли - пофигу, соберись уже пожалуйста, прошу тебя, ну же, билд ало😭
Filipp
ну тогда :
Filipp
в CMD ставишь шел скрипт, который запускает приложенько, миграции, бэкграунд скрипты и заботишься чтоб этот шел скрипт не останавливался после необходимых тебе операций, а жил как демон.
НО, все это что ты хочешь не очень хорошо
Виталий
Но вообще спасибо за помощь, очень отзывчивый чатик, как оказалось)
Serhii
на локальной машине запустил процес на порту(пусть это будет веб сервер на ноде), я могу как-то с образа докера , к примеру нжинкс, проксировать этот порт на другой? (сервисы поднимаю через докер-компоуз)