George
но по сути это тоже самое, что со слипами играться
Alexander
Как в docker compose сделать так, чтобы один контейнер запускался только после того как другой exit?
У меня есть специальный баш-скрипт, который в «инит»-контейнере при запуске вешается на порт, а в рабочем контейнере тот же скрипт с другими ключами ждёт пока порт не перестанет прослушиваться. Криво, но работает.
Alex
Зачем composer install в рантайме? Это же этап сборки
ну, контейнеризация ударила в голову и теперь хочу все процессы в отдельных контейнерах держать. понятно что проще установить внутрь backend composer просто, но хочется вот так\
George
Просто на голом компоуз это будет выглядеть ужасно
George
Лучше уж make, ей-богу
George
Разные, но пересекающиеся
Alex
Вы в контейнер заворачиваете само приложение или окружение для его разработки? Это две разные задачи.
И то, и то, судя по всему. Мои сервисы: frontend (npm run dev), backend (php artisan serve laravel), server (nginx), phpmyadmin, db, composer
Alex
Нет
gaenkov
Нет
Думаю это недостающий кусочек вашего пазла https://docs.docker.com/develop/develop-images/multistage-build/
Alex
Нет
Alex
Я сейчас сосредоточен на поднятии хотя бы полноценной дев сборки. Конкретно сейчас - пытаюсь решить проблему с composer в отдельном сервисе
Alex
Почему? Если я хочу только официальные образы использовать?
Alex
В смысле, не создавая свои кастомные
Alex
У меня сейчас нет какой-то прод задачи, зарелизиться, что-то сделать. Я знакомлюсь с инструментом, тыкаюсь, экспериментирую. Вот сейчас набрёл на задачу высроить очередность между контейнерами. Вопрос был про это
Alex
Понятно, что мы тут все экстрасенсы и лучше знаем, что подходит другому человеку, но я всё же хочу разобраться как без оркестрации просто и изящно выстроить цепочку
gaenkov
Окей, если в таком формате то вам уже выше написали что завязываться на очередность контейнеров - плохая практика, хоть и можно этого добиться обходными путями
Alex
Ну при этом официальная дока это, как минимум, не запрещает https://docs.docker.com/compose/startup-order/
Alex
Ну вот, оказывается вот так можно depends_on: composer: condition: service_completed_successfully
George
Вау
Vladislav
ребят кто сталкивался с такой проблемой
Vladislav
traefik_proxy | time="2022-05-11T20:25:45Z" level=debug msg="http: TLS handshake error from 172.19.0.1:46654: tls: no certificates configured"
Vladislav
как ее решить?
George
Выкинуть трефик
George
Описание уровень бог
Vladislav
docker стоит только на работе, пытаюсь поставить на свой ноут и запустить сайт, все сделал только он не открывается, на работе сказали скачать трефик, но у меня ошибку теперь такую выдает
George
Ну, вот на работе и проси помощи
George
У тебя ж там разрабы и девопсы есть наверняка
Vladislav
да я их уже достал вопросами
George
То есть поэтому теперь должны страдать остальные
George
🤷‍♂️
Alex
А можно как-то навешаться на docker-compose up и какой нибудь скрипт выполнить?
Alex
Именно на сам процесс, а не на контейнер, хочется без Makefile обойтись
Alex
Нет, нельзя, это фантастика, сынок
Ну, вообще я нагуглил build hooks
George
build hooks != скрипт при compose up
Grigory
Ребята, замечаю аномальную нагрузку при сборке образа, это нормально? 2 всплеска по 100% при сборке 2-х образов, но не в момент непосредственной сборки по шагам, а между сообщениями Building myapp и Step 1/11
George
Нормально
Grigory
А что на этом этапе происходит?
Konstantin
А что на этом этапе происходит?
у вас 2 всплеска по 100%
George
А что на этом этапе происходит?
strace и прочие мониторинги тебе в помощь
George
может докер демон диск дрючит или слои переупаковывает (а это, на минуточку, тар архив по сути)
Grigory
Спасибо ребята, вы лучшие)
Павел
привет, как можно запустить в докер-компоус кронтаб, который будет выполнять команду раз в какое-то время
George
привет, как можно запустить в докер-компоус кронтаб, который будет выполнять команду раз в какое-то время
Может лучше наоборот? В кронтаб на хосте прописать docker exec в нужном контейнере ?
ueberplebs
привет туплю, не могу нагуглить как примонитровать папку в докерфайле? чтобы было как в композе с volume volumes: - HOST/CONTAINER Вот нечто подобное есть в докерфайле? нашел VOLUME , но не понимаю как замапить там папку хоста и папку контейнера
George
Это не работает по причине безопасности
ueberplebs
окей, а если в етнрипоинт флаг mount прописать?
George
Не
George
Не придумывай херню
George
Если тебе кэш нужен - это по-другому решается
ueberplebs
я не придумываю, я спрашиваю если фигня, то окей
ueberplebs
Если тебе кэш нужен - это по-другому решается
ну мне не то чтобы кэш нужен мне нужно в контейнере иметь доступ к некоторым файлам на хосте
George
Не нужно в сборке доступ к файлам с хоста, а то злоумышленник легко бы украл твой /etc/passwd, например
George
Иначе - ты можешь перейти на момент не сборки, а запуска контейнера и в служебном контейнере делать какой-то движ
ueberplebs
спасибо
Ivan
[output clipped, log limit 1MiB reached]
Misha
Парни привет. Подскажите плиз, как можно сделать, чтобы php имел доступ к db сервису и к redis?
George
сделать так, чтобы они все были в одной сети networks
George
и ходить по именам сервисов
Misha
у меня вот так написано. Я так понимаю тут чтото не корректно значит, раз они не в одной сети?
George
здесь все корректно, что не работает-то?
Misha
ну у меня пхп не может подключиться к БД. Пишет ошибку. Я могу вручную зайти в БД. База данных создана и доступы рабочие. Предполагал что контейнеры друг к другу не конектятся... А раз всё правильно, то теперь и не знаю что не так )
George
Может ты просто с портом не угадал ?
George
Или база поднимается медленнее, чем пых ?
Misha
хм... я докер только пару дней юзаю... Может чегото еще недопонимаю... порт 3306 указываю. Сейчас еще буду думать что не так...