@docker_ru

Страница 912 из 1375
Andrey
10.12.2018
18:58:06
Ну собрала, а дальше что?
И положила в docker registry например

А дальше ты деплоишь уже, если надо конечно

Vaderoff
10.12.2018
19:18:12
А в чем заключается автоматизация, почему я не могу билдить сразу при деплое?

Google
Vaderoff
10.12.2018
19:19:06
А дальше ты деплоишь уже, если надо конечно
И может ли докер сразу после изменений в регистри релоаднуть контейнеры?

Andrey
10.12.2018
19:20:26
А в чем заключается автоматизация, почему я не могу билдить сразу при деплое?
Ну это процесс. Если разрабатываешь на проде, то тебе это все не нужно.

Vaderoff
10.12.2018
19:22:53
Ну это процесс. Если разрабатываешь на проде, то тебе это все не нужно.
что именно не нужно, возня с гитлабом или билдить при деплое?

Andrey
10.12.2018
19:23:55
что именно не нужно, возня с гитлабом или билдить при деплое?
если ты разрабатываешь на проде то просто собираешь новый контейнер, стопаешь старый, подымаешь новый. Делается трехстрочным баш скриптом.

Andrey
10.12.2018
19:26:44
А если говорить о чем то более менее серьезном то процесс может выглядеть так: разраб коммитит в гит -> некая CI система (gitlab/teamcity/jenkins/etc) видит новый коммит -> собирает контейнер -> гоняет тесты -> пушит в docker registry -> деплоит на тестовый стенд дальше тестировщики это мануально тестируют. Дают аппрув. жмакается кнопка и это летит на стенд нагрузочного тестирования. Если тестирование проходит то деплой на прод. Вот один из сценариев. И их может быть бесчисленное множество.

Andrey
10.12.2018
19:29:45
а если ты тупо забыл ; весь этот цикл каждый раз по новой запускать?
А у себя на тачке не проверял чтоль что накодил? ну программисты которые работают на проектах где есть такие системы, обычно тупо не забывают ;. как вариант прогонять тесты на забытую ";" перед коммитом

Отвечая на вопрос. Да, если "тупо забыл ;", делаешь фикс, который это устраняет и отправляшь код снова в гит, дальше все как и в предыдущий раз

Andrey
10.12.2018
19:31:50
Всякое бывает, тупо клавиша не прожалась и тд
Давай таки называть это просто словом баг. Если закрался баг, то на одном из шагов того pipeline который я описал, процесс свалится и уведомит об этом. Благодаря чему, это баг не просочится на прод

Google
Ahmed
10.12.2018
19:49:30
Не работает healthcheck, возможно неправильно его настроил. Дорогие дамы и господа подскажите что не так https://hastebin.com/olasobecut.http

Pavel
10.12.2018
22:10:32
Не работает healthcheck, возможно неправильно его настроил. Дорогие дамы и господа подскажите что не так https://hastebin.com/olasobecut.http
Попробуй так: test: ["CMD-SHELL", "/etc/init.d/mysql status 2>&1 | grep (running)"] А вообще, вот скрипт с более правильный вариантом https://github.com/docker-library/healthcheck/blob/master/mysql/docker-healthcheck

Ahmed
10.12.2018
22:13:07
Попробуй так: test: ["CMD-SHELL", "/etc/init.d/mysql status 2>&1 | grep (running)"] А вообще, вот скрипт с более правильный вариантом https://github.com/docker-library/healthcheck/blob/master/mysql/docker-healthcheck
Хм, а этот скрипт в каком https://github.com/docker-library/healthcheck/blob/master/mysql/docker-healthcheck из контейнеров запускать именно?

в контейнере с мускулом?

Pavel
10.12.2018
22:14:15
Да, в мускульном. Хелсчек и предназначен для проверки жизни контейнера в котором он запускается

Более сложные проверки не хелсчеками делаются а другими инструментами

Ты можешь запустить контейнер без хелсчека. Зайти в него и там подать команду что я дал. Сразу после нее echo $? подаешь и оно тебе выведет 0 если мускул работает и 1 если нет

Это как раз то что хелсчеку и надо

Эмулировать что мускул не работает можно изменив в grep патерн с running на любой другой

Ahmed
10.12.2018
22:23:11
Спасибо за советы

У меня чет скрипт с хелзчеком не прокидывается в контейнер с мускулом. volumes: - ./astro-backend/compose/mysql/mysql-healthcheck.sh:/docker-entrypoint-initdb.d

Правильно ли я делаю все?

У меня чет скрипт с хелзчеком не прокидывается в контейнер с мускулом. volumes: - ./astro-backend/compose/mysql/mysql-healthcheck.sh:/docker-entrypoint-initdb.d
С этой проблемой разобрался, вот только не понимаю почему он считает баш скрипт за директорию? /usr/local/bin/docker-entrypoint.sh: line 53: .: /docker-entrypoint-initdb.d/mysql-healthcheck.sh: is a directory

Andrey
10.12.2018
22:36:10
С этой проблемой разобрался, вот только не понимаю почему он считает баш скрипт за директорию? /usr/local/bin/docker-entrypoint.sh: line 53: .: /docker-entrypoint-initdb.d/mysql-healthcheck.sh: is a directory
Потому что монтируешь файл в директорию. Не помню можно ли монтировать файл в файл, но директорию в директорию точно можно.

Subb98
11.12.2018
05:36:30
доброе утро. не подскажете, как можно пробросить vhost'ы докера на хостовую ось?

ildar
11.12.2018
05:44:34
в докере есть vhost? ;)

Google
Subb98
11.12.2018
05:45:24
если ip контейнера изменится? хотелось бы более изящное решение

Но откуда vhost в докере?
мб, я неверно назвал. имя сервиса

Andrey
11.12.2018
05:45:54
Стало еще более непонятно :)

Subb98
11.12.2018
05:46:00
нужно что-то подобное

https://coderwall.com/p/qknu2g/local-docker-development-with-virtual-hosts

Andrey
11.12.2018
05:47:11
Ну, так ip у вас не изменится. Всегда будет докалхост

Subb98
11.12.2018
05:48:36
Ну, так ip у вас не изменится. Всегда будет докалхост
мы, наверное, о разном. я про ip, который можно узнать через inspect и который таки меняется

ildar
11.12.2018
05:48:51
Опиши задачу нормальными словами)

Subb98
11.12.2018
05:50:10
Опиши задачу нормальными словами)
да всё очень просто. вот у вас есть compose файл, там список сервисов. у каждого сервиса есть имя. нужно иметь возможность обращаться к имени сервиса как к домену, например: backend:9000

внутри докер нетворка вы это делаете

а надо с хоста

ildar
11.12.2018
05:51:20
#/etc/hosts 127.0.0.1 backend

Subb98
11.12.2018
05:51:41
не канает )

там ip другой

нужно какой-то тулзой зарезолвить эти имена. если кто-то так уже делал, был бы признателен за подсказку. мне пока скинули только docker dnsmasq. вот копаю

ildar
11.12.2018
05:53:51
зачем тебе знать айпишник контейнера?

Subb98
11.12.2018
05:54:36
мне не надо его знать. мне нужна возможность обратиться к имени сервиса с хостовой машины. потому что по локальному адресу (127.0.0.1 / localhost) этот сервис недоступен

и я могу обратиться только чз ip контейнера

Google
Subb98
11.12.2018
06:08:28
Так заэкспозь порты всех сервисов и прокинь на локалхост
порты прокинуты, но мне это не помогло вчера. сейчас ещё раз попробую.

@subbotinv, глянь ветку
спасибо, щас погляжу

проверил ещё раз, проблем с доступом чз порт нет, но мне всё равно не подходит данный вариант из-за текущей конфигурации. утилиту мне уже скинули, вот она, мб, кому пригодится.

ildar
11.12.2018
06:24:15
бинарь в чатик? фуфуфу

Subb98
11.12.2018
06:24:36
ну ок, удалю )

Bad
11.12.2018
08:12:35
Подскажите пожалуйста! Есть два отдельных сервиса/стека. Как можно подключить базу данных к ним обоим?

Max
11.12.2018
08:13:54
@jellyfish13 на разных серверах?

Bad
11.12.2018
08:16:15
Ну, сервисы могут распределиться как на один, так и на два разных сервера

Rustam
11.12.2018
08:27:33
просто база и связанные сервисы должны быть в одной докеровской сети

Bad
11.12.2018
08:58:15
просто база и связанные сервисы должны быть в одной докеровской сети
А какую сеть взять? Overlay? (при этом требуется, чтобы сервисы имели доступ только к БД и не могу шарить за пределами их сети) И как тогда сервис обращается к БД? localhost:port или по имени?

ildar
11.12.2018
09:10:57
@vizdrag

Sergey
11.12.2018
09:11:12
Rustam
11.12.2018
09:13:45
А какую сеть взять? Overlay? (при этом требуется, чтобы сервисы имели доступ только к БД и не могу шарить за пределами их сети) И как тогда сервис обращается к БД? localhost:port или по имени?
да, делаете просто новую overlay сеть и подключаете к ней необходимые сервисы. Если пользуетесь docker-compose.yml файлами, то можно всё указать в них

например, в файле стека А пишем networks: my_network: name: my_network driver: overlay в файле стека Б services: my_service: networks: - default - my_network networks: my_network: external: true используем на одном проекте такую схему для проксирования запросов траефиком в разные стеки, полёт нормальный. Единственное, нужно учесть, что если делать точно так - то появится не совсем очевидная зависимость между стеками и нельзя будет удалить стек А пока работает стек Б. Нам это и надо, но вам может быть проще будет создать сеть руками (docker network create...) и добавить её в оба стека с external: true

Demezhan
11.12.2018
10:51:12
Всем привет, не подскажите как можно отключить firewall Cento OS 7 в докере, если systemctl команды не работают из за Failed to get D-Bus connection: Operation not permitted, вроде есть способ установить туда systemd но этого делать не советуют посколько Cento OS ни идет как полноценная ОСка.

Irek
11.12.2018
10:52:04
в докере отключить firewalld? эм....его там и нет

Vladimir
11.12.2018
10:53:19
Ssh не хватает для полного счастья внутри

Google
Demezhan
11.12.2018
10:56:57
Все разобрался спасибо

Ruslan
11.12.2018
12:01:14
чат, а docker system prune затронет registry ?

Mr_Babrums.bin
11.12.2018
12:08:28
если ты имеешь в виду может ли эта команда его зачистить

Ruslan
11.12.2018
12:08:55
разлогинит кажется
уточню, если выполнить команду на том хосте, где расположен registry

Mr_Babrums.bin
11.12.2018
12:09:08
ща проверю

Stefan
11.12.2018
12:09:57
уточню, если выполнить команду на том хосте, где расположен registry
WARNING! This will remove: - all stopped containers - all volumes not used by at least one container - all networks not used by at least one container - all dangling images

да вродь не должно

Mr_Babrums.bin
11.12.2018
12:14:21
блин

Страница 912 из 1375