Alexey
всем привет! Собираю докер окружение для laravel-проекта и хочу сделать так, чтобы при запуске контейнера, если нет папки vendor запускалась команда composer install ну и еще несколько. Как это сделать так, чтобы эта команда выполнялась явно? На текущий момент контейнер запускается, но установка композера идет в фоне, без всякого оповещения. Я хочу, чтобы или был какой-то вывод в консоль о прогрессе либо просто контейнер не запускался пока композер не закончит установку и приготовления перед запуском.
Alexey
у меня сейчас другая проблема - почему-то при поднятии контейнера очищается БД каждый раз. Вот конфиг. Папка, в которую должны данные из БД прокидываться пустая
Alexey
а db_data описан?
вот весь конфиг https://pastebin.com/KDiPkuSW
Alexey
вот весь конфиг https://pastebin.com/KDiPkuSW
Это же отдельный volume а не монтирование директории
Hopf
Всем привет! Я хочу сбилдить 2 очень похожишь контейнера В одном лежит файлик file.sh и в другом лежит этот файл. Как бы мне иметь две директории с двумя докерфайлами и один файл? Симклинк в dockerbuild нельзя, ссылаться на ../file.sh, тоже нельзя. как обычно это решается?
Hopf
Вижу, что многие создают несколько Dockerfile в одной директории
Hopf
hardlink
ты тоже так решаешь? или не сталкиваешься с подобной проблемой?
AlexD
ты тоже так решаешь? или не сталкиваешься с подобной проблемой?
hardlink это стандартное решение когда надо представить один и тот же файл с разными путями.
manefesto
Контекст сделай на уровень выше и все
Hopf
Контекст сделай на уровень выше и все
Я сложил докерфайлы в одну директорию и начал собирать их шелл скриптом
manefesto
И зачем ?
Hopf
Мне показалось, что так удобнее, через делать контекст на директорию выше
manefesto
Я делаю так ./docker/<project>/Dockerfile ./src/<project> docker-compose.yaml
manefesto
Если проект состоит из нескольких контейнеров, то для каждого есть своя папка с конфигами внутри папки docker, и исходники в разных папках. Не помню где читал, но вроде такая структура оптимальная
manefesto
У меня течёт кровь из глаз когда вижу кашу
manefesto
Суть в том что сущности должны быть отделены.
manefesto
Например ./docker/nginx содержит только Dockerfile и конфиги
Hopf
хмм... давай я чуть подробнее раскрою тему. Может ты посоветуешь что-нибудь. У меня есть проект - докер-образы для контейнеров, где производится сборка разного кода. Они отличаются друг от друга докерфайлами и незначительным количеством файликов, все остальное одинаково. например центось7, центось8, убунту1604, 18004, 2004, и все это еще раз но только под arm64
Hopf
На выходе должно получиться примерно 10 образов, очень похожих
Hopf
как бы ты их собирал?
manefesto
Файлики какие меняются?
Hopf
Entrypoint у трети отличается, ещё у некоторых sudoers
Hopf
Где-то часть скриптов
manefesto
Я бы вообще запихал все в один образ и сделал бы свой entrypoint в котором бы заложил уже некую логику. Передаёшь определённый параметр, получаешь другой функционал. Приведу пример. У меня есть проект. В нем 4 сущности. - dB migration - crawler - checker - api - endpoint И в зависимости от того какой entrypoint укажешь в docker-compose такой функционал и будет.
manefesto
Ошибся. 5 сущностей
manefesto
Чувак который это писал молодец. Я про разработчика
manefesto
Можешь вообще сделать внутри контейнера папку /docker-entrypoint и в ней все твои 10 ентрипоинтов и 10 папок с файлами. В энтрипоинте в начале пишешь что-то вроде cp -rf ./entrpoint1/* /
manefesto
И твои конфиги разъедутся куда надо
manefesto
Этот кейс специально для тебя
Hopf
У меня тогда образ гигов десять будет весить
Hopf
Ну и под разные платформы не соберёшь один образ
manefesto
Ну батенька. Тогда колхозить
manefesto
Потом займёшься рефакторингом
Hopf
Я уже отколхозил. Теперь пришло время рефакторинга
manefesto
Все в твоих руках. Разделяй и властвуй.
nortimg
вопрос про Docker + nginx. Хочу прокинуть SSL-сертификат в контейнер nginx. Но почему-то файлы прокидываются как директории... Что делать?
nortimg
docker-compose.yaml
nortimg
сертификат на хосте
nortimg
без него то же самое
nortimg
просто подсказкой добавилось
nortimg
по tab
nortimg
Хотя ещё раз сейчас попробую
nortimg
nortimg
Точно так же
Dan
Ребят привет! Мы подумали, чем занять наши прекрасные ИТ-умы в сей не простой период и придумали #HackTheCrisisRussia ) (Мы, конечно, не первые кто придумал его, уже провели и проводят аналогичные прямо сейчас в 46 странах мира) Цель Хакатона найти современные и новаторские решения тех проблем, с которыми МЫ с ВАМИ сейчас столкнулись. Мы сразу решили, что в данном хакатоне не будет первых мест - будут лучшие идеи и реализованные проекты! Мы готовы рассмотреть любые идеи - абсолютно: Если вы придумали как обезопасить людей старшего поколения - Welcome! Если вы придумали современную платформу продвижения бизнеса для домохозяек, или мониторинг лучших преподавателей онлайн образования - Welcome! Любая идея что поможет всем нам приветствуется! Главный критерий, это конечно же помощь обществу. Компания Mail.ru Cloud Solutions и компания Ontico - конференции Олега Бунина, уже включились в организацию данного хакатона. В партнерах уже есть EPAM, Rebrain и мы ждем другие большие и маленькие компании! Очень буду рад, если представители других компаний присоединятся к нам, как инфо партнеры, как менторы, или как генераторы супер идей. Предложить свою идею вы можете на сайте https://hackthecrisisrussia.ru/ Новости вы можете прочитать в канале https://t.me/hackthecrisisrussia
Дмитрий
Всем привет. Кто нибудь сталкивался с проблемой производительности примонтированных директорий на win 10 ? В вольюме докера скорость записи ~ 300 мб/c, на примонтированной ~3мб/c . На гитхабе много открытых проблем с 2015 года по этой теме, неужели до сих пор нет не костыльного решения помимо нестабильного docker-sync и unison?
manefesto
а разве win10 не запускает докер в Hyper-V ?
Дмитрий
hyper-v работает на win 10 pro и выше, у меня home сборка поэтому тут vm virtualbox + docker toolbox. Да и судя по отзывам в интернетах разница в производительности небольшая - везде одинаково плохо.
Sander
Всем привет,
Дмитрий
Или hyper-v + docker, или мигрируй на линукс. Я долго просидеть не смог на 10ке
а есть какая инфа по производительности как докер работает вместе hyper-v в плане монтирования?
Doublegrey
Добрый день! У меня есть 2 контейнера - в одном kafka producer, в другом consumer. Оба должны использовать порт 9092. Как быть?
manefesto
Два контейнера. В чем проблема ?
manefesto
¿
Neidhardt🇺🇦
--link ?
Устарел в 1.9
Andrey
Всем доброго времени суток и не болеть! у меня вопрос к уважаемому сообществу. пишу логи в docker в stdout и собираю filebeat. логи пишутся в файлики корректно. пример {"log":"2020-04-15 19:33:19 [epollEventLoopGroup-3-4] [INFO ] r.s.i.h.HttpServerHandler: HTTP Response status code \"406 Not Acceptable\" content \"\" is returned\n","stream":"stdout","time":"2020-04-15T16:33:19.533263955Z"} однако я не понимаю как в кибане найти вот это "time":"2020-04-15T16:33:19.533263955Z": куда это записывается в elastic? в timestamp закидывается почему-то время из лог-сообщения. как правильно туда закинуть время из поля time?
Nikita
У тебя ж дататайм
Nikita
А не тайм
Andrey
У тебя ж дататайм
поясни пожалуйста
Володян
Всем привет, подскажите, реально ли с контейнера выйти на свою локальную машину и локальный апач? или только на общие ДНС можно влегкую, а для локалки - надо днс еще поднимать ? т.е. можно ли влехкую получить доступ из контейнера на железку сервера на котором крутится докер ?
Володян
все, прописал в хостс контейнера: свой ип и доменное имя на моей машине ! профит.
Володян
нее, проще, машина в сети 10.1.2.5 прописал: 10.1.2.5 mysite.loc и работает)
Evgeniy
Похожая ситуация нужно получить доступ из контейнера к серверу на хосту. Сервер на 127.0.0.1 специфическом порту. Писать код и тестировать нужно на винде и использовать докер толс. Выполнятся будет на линкс сервере. Пока не нашёл ни одной внятной доки. Контейнер о host.docker.internal ничего не знает.
Володян
Evgeniy
При разработке хостовая машина на винде 7, а контейнер со стандартным линуксом имаджем python (докер через докер толбокс) На продакшен линукс дебиан 8.
Evgeniy
И на машине разработки и на продакшене на 127.0.0.1 чего-то там порту сервис принимающий команды.
Evgeniy
Нужно достучаться до него из контейнера
Кирилл
подскажите пожалуйста, в чем проблема: если запускаю контейнер при помощи docker-compose, то environment не работает. не задается рут-пользователь, пароль и пр. Выдержка из yml: jm-mysql: image: mysql:8 volumes: - ./mysql-data:/var/lib/mysql - ./mysql-init-files:/docker-entrypoint-initdb.d restart: always ports: - 5432:5432 environment: - MYSQL_ROOT_USER=root - MYSQL_ROOT_PASSWORD=1111 - MYSQL_DATABASE=test - MYSQL_USER=test_dev - MYSQL_PASSWORD=longpassword но если запускать контейнер отдельно, например так: docker run -e MYSQL_ROOT_PASSWORD=1111 mysql:8 то подключиться могу. что не так?