Stas
ниче так что мускул/мария 300 в среднем мб жрет
Roman
у кого некстклауд в докере отпишите плиз
Roman
проблемы с обновлением
Maxim
mysql: networks: - zhasproject image: mariadb volumes: - ./docker/data/mysql:/var/lib/mysql environment: - "MYSQL_DATABASE=homestead" - "MYSQL_USER=homestead" - "MYSQL_PASSWORD=secret" - "MYSQL_ROOT_PASSWORD=secret" ports: - "3306:3306"
обновилась версия БД и старая база что в папке /docker/data/mysql не может быть подключена к новой версии, нужно очистить папку и залить дамп в новую пустую базу. Что бы такого не повторялось необходмоу жестко фиксировать какую версию MariaDB подтягивать в сервис, иначе вот такое сообщения о невозможности подружиться с имеющейся базой.
Stas
понял спасибо!
Maxim
не хочет кушать старую базу что в папке ./docker/data/mysql такое лучше делать как volumes: - "mysql_data:/var/lib/mysql"
Maxim
и рулить этим легче и подключить к другому контейнеру легче
Stas
Да работает сенкью )
Maxim
Да работает сенкью )
не за что ) обращайся, обязательно поможем!
Petrovich
и рулить этим легче и подключить к другому контейнеру легче
как такие вольюмы выносить на другие разделы только вот
Petrovich
ну типо перенести этот named volume на другой ссд
Maxim
ну типо перенести этот named volume на другой ссд
На другой хост? Или на локальном хосте должны создаваться в другом разделе, не в том что по умолчанию?
Petrovich
на локальном хосте на другом разделе
Maxim
на локальном хосте на другом разделе
Можно смонтировать раздел и подсунуть докеру, можно в настройках поковыряться, там вроде масса путей как перенести ответственность без головной боли, но лучше docker юзать прямо с ssd
Petrovich
ну так это надо и систему на ссд держать
Petrovich
а если у меня несколько ссд
Maxim
а если у меня несколько ссд
Тогда чем не нравится тот на котором docker? Размером?
Petrovich
предположим
Petrovich
ну а если их несколько
Petrovich
я кстати еще ниразу не пользовался маунтом в докере
Petrovich
Система не на ssd?
не на том, конкретном, ссд
Maxim
не на том, конкретном, ссд
Смонтируй ssd в ту директорию в которой docker плодит volume и будет тебе счастье
Petrovich
такое себе решение
Petrovich
потому что не расширяемое
Maxim
потому что не расширяемое
А ssd твой расширяемый значит )
Petrovich
ссд может быть НЕСКОЛЬКО
Maxim
ссд может быть НЕСКОЛЬКО
От этого они не становятся расширяемыми, верно?
Maxim
Можно ещё сеть задействовать, но это уже не совсем локальное решение для "чтоб взлетело"
[username]
Настроил traefik для двух проектов. С хоста оба открываются, но вот из контейнера проекта 1 не могу достучатся до контейнера проекта 2. Стучусь так curl app.local Насколько я понимаю, нужно указать extra_hosts для каждого проекта, но какой ip указывать ?
Maxim
Настроил traefik для двух проектов. С хоста оба открываются, но вот из контейнера проекта 1 не могу достучатся до контейнера проекта 2. Стучусь так curl app.local Насколько я понимаю, нужно указать extra_hosts для каждого проекта, но какой ip указывать ?
Расскажи подробней что пытаешься сделать? Может быть это не два проекта, а один и разделение на два docker-compose было ошибкой? Если такое разделение необходимо бизнес процессом то есть способы как достучаться
[username]
Расскажи подробней что пытаешься сделать? Может быть это не два проекта, а один и разделение на два docker-compose было ошибкой? Если такое разделение необходимо бизнес процессом то есть способы как достучаться
Есть два проекта црм и цмс, каждый со своей кодовой базой, лежат в разных папках. У каждого проекта есть свои контейнеры, которые не пересекаются. Иногда, нужно что бы црм с бэкенда смогла послать запрос на цмс и наоборот
[username]
Тогда нужно объединить в одну сеть те контейнеры которые должны видеть друг друга включая traefik
Создал сеть в docker-compose traefik networks: shared: driver: bridge В проектах подключаю её и создаю ещё свою сеть для црм Црм networks: default: external: true name: my_shared crm: driver: bridge services: nginx: build: nginx container_name: crm_nginx labels: - "traefik.frontend.rule=Host:${NGINX_HOST}" networks: - default - crm Цмс networks: default: external: true name: my_shared crm: external: true name: my_crm services: workspace: build: context: ./workspace networks: default: aliases: - cms.local crm: aliases: - crm.local
[username]
Что то перенамудрил с сетями, мне кажется
Я пробовал использовать без альясов в networks, всё рано не работает
[username]
причём по названию контейнера получается запрос отправить, а вот как это на доменное имя завязать - не знаю
Maxim
Если создать сеть и добавить её в traefik, затем как внешнюю в один проект к контейнеру, затем так же как внешнюю в другой проект к другому контейнеру то все должно работать
[username]
Вроде нашёл решение в виде external_links
Petrovich
/report
Sergey
Maxim
Вроде нашёл решение в виде external_links
Поделись решением, не держи в себе )
[username]
а docker-compose всё ещё не поддерживает несколько .env файлов ?
[username]
Поделись решением, не держи в себе )
Помогла ссылка сервиса на домен :) в docker-compose црм external_links: - cms_nginx:cms.local
[username]
А зачем несколько .env файлов?
хочу сделать файл .env_hosts в котором буду указывать домены, а в цмс и црм подклюить этот файл что бы знать о хостах друг-друга. Что бы можно было записать ``` external_links: - cms_nginx: ${CMS_HOST} ```
[username]
что бы не дублировать одну переменную CMS_HOST в файле .env цмс и .env црм
Maxim
что бы не дублировать одну переменную CMS_HOST в файле .env цмс и .env црм
Все указывает на то что эти два приложения являются частью одного большого приложения и должны быть в одной docker композиции
David
Всем доброго дня. Подскажите, пожалуйста, можно ли перезагрузить docker-compose контейнеры на новом external network - без docker-compose down?
David
Просто запусти ещё раз up -d для применения изменений
Не могу. Контейнеры удалять нельзя
Maxim
Не могу. Контейнеры удалять нельзя
А с чего это они вдруг должны удаляться при up -d?
Maxim
Удаляются как раз при down
David
David
Просто запусти ещё раз up -d для применения изменений
Я пробовал, но не применяется новый network к запущеным контейнерам
Maxim
Ну а я о чем?
David
Нужно слезть с их сети на новую (external overlay swarm network)
Maxim
Да
docker network inspect network_name что говорит?
David
docker network inspect network_name что говорит?
Показывает подключенные к сети контейнеры, но при docker-compose up -d они пересоздались
Maxim
Пересоздаются только при down, при up -d только останавливаются и запускаются снова без удаления
Maxim
[username]
Все указывает на то что эти два приложения являются частью одного большого приложения и должны быть в одной docker композиции
так и есть, но мне хотелось сделать контейнеры максимально независимыми друг от друга и не держать один большущий docker-compose.yml
[username]
Есть возможность мерджить .yml файлы в нужной комбинации
Получится приерно так? - nginx/ - Dockerfile - php/ - Dockerfile - mysql/ - Dockerfile - node/ - Dockerfile - docker-compose.crm.yml - docker-compose.cms.yml - docker-compose.yml ?
Maxim
Получится приерно так? - nginx/ - Dockerfile - php/ - Dockerfile - mysql/ - Dockerfile - node/ - Dockerfile - docker-compose.crm.yml - docker-compose.cms.yml - docker-compose.yml ?
например в папке docker/source можно разместить кастомные Dockerfile для сервисов, а в папке docker/compose разместить .yml файлы сервисов, затем можно делать запуск определенных сервисов или композиций путем указания нужного набора .yml файлов примерно вот так docker-compose -f docker/compose/common.yml -f docker/compose/service1.yml -f docker/compose/service2.yml up -d это всего лиш пример и все зависит от текущей задачи, но вполне рабочий вариант если нужно на проде развернуть полностью все сервисы, а на машине разработчика запустить только те сервисы которые необходимы для решения конкретной задачи. подчеркиваю что это всего лиш пример, для демонстрации возможностей
Maxim
Выглядит круто, буду разбираться. Спасибо! :)
на нашем проекте мы еще не доросли до swarm или kubernetes, пока что обходимся средствами docker-compose, но когда композиция доросла до такого количества сервисов что не влезает в 8Гб ОЗУ то задумались о том что бы запускать не весь набор, а только то что необходимо для решения задачи разработчиком и придумали счему что я описал выше, это конечно не решило всех проблем, а скорее отложило решение, но подход вроде бы рабочий и позволит в будущем легко переехать в swarm или куда нибудь еще
[username]
@rttrttrtt У нас на проде обходятся без докера :) Всё что я делаю - это для своей локальной разработки.
Maxim
@rttrttrtt У нас на проде обходятся без докера :) Всё что я делаю - это для своей локальной разработки.
Ну тогда тебе точно нужно разделить на сервисы и запускать не все, а только то что нужно для решения задачи. Ну и главное конфиги с прода все подтянуть и версии приложений запускать именно такие как н проде, а то можно пройтись по граблям с разными версиями БД или node.js или php с его набором плагинов и т.д.
Maxim
Буду разбираться с разделением docker-compose.yml... а случайно не найдётся проекта с открытым исходным кодом где применяется подобный подход ?)
я не искал что то подобное, воспользовался примером из документации где написано что можно мерджить yml файлы, для того что бы удостовериться что все ок используйте docker-compose -f common.yml -f service1.yml config в результате выполнения этой команды будет отображен итоговый конфигурационный файл, если будут ошибки то выдаст сообщение с указанием номера строки. в самой документации был примерчик, помоему, но я давно в этот раздел не заглядывал