Anonymous
таске всмысле баш скрипт написать?
Сергей
тут форвардинг на хосте надо настраивать для контейнеров...
Т.е. это на iptables править? А в остальном всё так (использую дефолтный bridge)?
Сергей
А ещё не забыть в ядре форвард разрешить
Чего-то я не силён в этом направлении... ( Подскажите, пожалуйста, что почитать в этом направлении?
std::slavik
Народ, кто юзал кадди, что делаю не так? в docker-compose.yml лейблы от кадди добавил, а он всеравно не редиректит правильно?!😅
https://tgcloud.xyz:2015 { root /var/www/tgcloud.xyz tls slavikmipt@gmail.com filemanager / /var/www/tgcloud.xyz/ { url / no_auth allow_new true allow_publish true allow_edit true allow_commands false locale en } } не знаю поможет или нет, но на всякий случай скину свой Caddyfile)
std::slavik
уже не помню в чем там была проблема, но тоже долго возился
Pavel
Чего-то я не силён в этом направлении... ( Подскажите, пожалуйста, что почитать в этом направлении?
На машинах локальной сети нужно прописать роут к контейнерам вида ip route add 192.168.80.130 via 192.168.80.2
std::slavik
я с глючстером вот так сделал
std::slavik
суть в чем - shared монтируется как volume nfs, а local монтируется к папке просто
Ruslan
я с глючстером вот так сделал
А я подумал зачем мне монтировать и просто скопировал через docker cp . Просто я хотел по правильному сделать, а так никто не делает
Ruslan
это разные вещи
Согласен. В моем случае простое cp т.к. нужен был файл, а если нужно логи тянуть, то я читал что через name volume можно
std::slavik
Согласен. В моем случае простое cp т.к. нужен был файл, а если нужно логи тянуть, то я читал что через name volume можно
монтирование это включение какой то файловой системы в общее пространство имен
std::slavik
так что про то что монтируется откуда то куда то - бред
std::slavik
особенно когда речь о докере идет что из докера монтировать что из хост системы - вызываются одни и те же системные вызовы одного и того же ядра
std::slavik
можно как находясь в докере примонтировать том, так и в хост системе
std::slavik
просто не нужно путать монтирование и пробрасываение забыл слово правильное
std::slavik
sudo docker run -v /etc/nfs:/mnt:shared \ -v /etc/glusterfs:/etc/glusterfs:z \ -v /var/lib/glusterd:/var/lib/glusterd:z \.....
std::slavik
std::slavik
при запуске контейнера вот это происходит без доп параметров - системным вызовом unshare от процесса отвязываются все пространства имен
std::slavik
сеть, каталоги, айди процессов и тд
std::slavik
потом делается форк и дочерний процесс существовать продолжает в чистом поле так сказать
std::slavik
sudo docker run -v /etc/nfs:/mnt:shared \ -v /etc/glusterfs:/etc/glusterfs:z \ -v /var/lib/glusterd:/var/lib/glusterd:z \.....
вот этими параметрами мы говорим, что хотим чтобы дочерний процесс видел папки эти и в его пространстве имен он к ним будет по имени после двоеточия обращаться
std::slavik
а также права чтения записи указываем
std::slavik
то есть тут мы находимся в одной фаловой системе и ниче с ней не делаем
std::slavik
но если например контейнер создает в себе файловую систему какую то - например сетевую, то для того, чтобы пространство имен этой файловой системы оказалось в файловой системе другой какой то - например хост ОС - нужно выполнить их сопряжение
std::slavik
так как они устроены по разному и чтобы в выбранной нами папке хост системы появилось пространство имен, например сетевой файловой системы - нужен драйвер
Mikhail
std::slavik
mount -t glusterfs s1.mediatube.xyz:/shared /mnt/shared вот тут как раз -t говорит какой драйвер использовать
Konstantin
ты даже вопрос не можешь понять
std::slavik
Semen
Всем привет Использую для поднятия зоопрака контейнеров docker-compose. Поднимаю db, redis, приложение. Как мне гарантировать, что db и redis будут подняты раньше, чтобы при старте контейнера с приложением накатить маграции и данные в хранилища?
Semen
Подскажи, пожалуйста
Konstantin
никак, сделать так, чтобы скрипт миграции ждал зависимости
Alexey
А что не так с depends?
если health check нет, то следующий контейнер начнет запускаться независимо от того, стартанула ли база в первом
Alexey
В самом compose файле?
ну health check в докерфайле, а depend в композе, да
Mentat
И уже от него зависимо запускать апп
Alexey
Понял, спасибо
https://docs.docker.com/engine/reference/builder/#healthcheck тут про то, как healthcheck делается, про depend on тоже найдешь в доке композа
Alexey
Ну это уже ньюансы)
так он эти ньюансы и лечит :)
std::slavik
А что не так с depends?
он не будет ждать пока они запустятся
std::slavik
monit можно
Mikhail
Zabbix
Konstantin
L1 24\7 команду повесить на контейнер
Konstantin
не страдайте
ὦan
есть у меня простой docker-compose файл web-server: build: ./web-server ports: - "9090:9090" links: - "postgres:localhost" postgres: image: postgres container_name: codesearch-db Трабл в том, что приложение не видит базу Connection to localhost:5432 refused (знаю что links устарело) я если правильно понимаю что по дефолту всегда bridge network и контейнера друг друга видят. Или нужно host network делать?
Konstantin
убери линкс - ненужное, замени localhost на postgres
Konstantin
и уже почитайте про основы композа
ὦan
>замени localhost на postgres это вы про изменение в коде приложения?
Konstantin
да
Konstantin
мы
Konstantin
имя сервиса = днс имя по которому можно подключиться
Mikhail
В кастомной сети
Sergey️
Как адекватно создавать несколько дерикторий через mkdir в докерфайле, одним RUN?
Денис
Аля mkdir test test2 test3
Sergey️
mkdir умеет в несколько опций ;)
Ну это "ТРУ" вариант?)
Денис
А вот mkdir test && mkdir test2 был бы не тру
Денис
почему?
Больше буков
Денис
Буковы лишние ненужны
Anton
Linux: host> mkdir pp && docker run --rm -it -v $PWD/pp:/pp alpine guest> touch /pp/1 host> $ ls -l pp -rw-r--r-- 1 anton staff 0 Sep 18 22:23 1 Mac: host> mkdir pp && docker run --rm -it -v $PWD/pp:/pp alpine guest> touch /pp/1 host> $ ls -l pp -rw-r--r-- 1 root root 0 Sep 18 19:24 1 Почему на маке и линуксе поведение разное и как на линуксе добиться того же, что и на маке?
Anton
(в плане group/user создаваемого файла)
Dmitry
не создавай папку - он сам от рута создаст и примонтирует с правами root:root
Anton
не создавай папку - он сам от рута создаст и примонтирует с правами root:root
мне нужно, чтобы на хосте итоговая папка со всем содержимым была пользователя и группы, который запустил контейнер
Dmitry
тогда надо использовать userns и маппинг юзеров https://docs.docker.com/engine/security/userns-remap/#prerequisites
Dmitry
либо создавать при запуске контейнера юзера с теми же uid gid, что и владелец папки
Dmitry
с помощью entrypoint-скрипта