George
Это ужасный глючный костыль, согласен.
хоть кто-то со мной согласен. 😂
Anonymous
Nginx на хост машину чтоли ставить тогда 🧐
George
он же не будет уметь в контейнеры ходить. А если через пробросы портов… ну, там еще проблемы с секьюрити вылезут
George
кратко
Denis🇨🇭🚜 🕌
а обновлять конфу как?
Хостовый nginx можно особым образом приготовить для связи с контейнер сетями.
Anonymous
Или еще 1 docker проект с network_mode host
George
короче, начинаются костыли, я понял
Anonymous
Но чет какое то некрасивое решение
Anonymous
А 2 проекта могут использовать одну сеть?
Siarhei
привет. два вопроса, как можно сделать параметры для запуска docker-compose, чтоб вместо C:\\Users\\Siarhei\\ был какой-то параметр и потом типо $ docker-compose .... -param1 %USERPROFILE%? и как в docker-compose указать, чтоб после того как запустит dotnet и подымет базу, запустил пару sql скриптов? дайте наводку где в документации про это?
Siarhei
Anonymous
Или для каждого docker compose сеть изолирована?
Denis🇨🇭🚜 🕌
George
уверен, что под виндой тоже можно заколбасить
Siarhei
мне надо универсальный, чтоб я под виндой мог и на маке запускать
George
Да если их объединить.
можно сначала создать сеть (`docker create network`), а потом в докер-компоуз эту сеть как external забубенить
George
промышленное решение, между прочим
George
мне надо универсальный, чтоб я под виндой мог и на маке запускать
там нюансы, т.к. под маком - там виртуалка поднимается так или иначе
Anonymous
промышленное решение, между прочим
Как раз это и имел ввиду
Anonymous
Спасибо, пойду тестить
George
можешь попробовать сделать один общий докер-компоуз
George
а специфику оси вынести в docker-compose.win.yaml + docker-compose.mac.yaml
Anonymous
Не, проекты должны быть изолированы
George
George
либо всю специфику описать в .env файлах, но подключать только тот, который к конкретной среде относится
George
только учти, что .env берется ТОЛЬКО из текущего каталога и ты его задать не можешь (это не директива —env-file)
Siarhei
а по запуску sql после запуска всей этой движухи подскажите? чтоб когда все завелось, стартанули sql сразу, чтоб заселить тестовыми данными
George
либо через depends_on + правильный хелсчеки (рекомендую попробовать 2-ю версию компоуз-формата)
George
либо можешь отдельно башник, который будет руками стартовать все необходимые контейнеры в определенном порядке и вызывать docker exec в нужный момент времени
George
а вообще идеальнйы сценарий - это собрать образ с базой с тестовыми данными и запускать его , а не пустую базу
George
ферштейн?
Siarhei
мне надо чтоб 1. поднялась пскл 2. поднялся дотнет, он у меня миграцию свою запускает где таблицы создаются 3. запустить скрипты с тестовыми данными в эти таблицы «««« вот это
George
я не понимаю почему ты не можешь инжектировать в пскл уже готовые таблицы с тестовыми данными
George
сразу
George
чтоб стартанул из образа и полетело.
George
а не ждать пока все миграции и наполнение данными отработает
George
касательно вариантов без пересборки образа пскл - я тебе МИНИМУМ два предложил
Denis🇨🇭🚜 🕌
Да в чем суть запуска голой миграции, только дольше проверки
George
но вообще имей в виду, что докер-компоуз в общем случае - это не про порядок запуска сервисов вообще-то
Siarhei
сложно 🙂 вчера только докер начал читать, то что верстальщик не может на маке завести руками все окружение, хочу ему докером все это сделать. тут проблема что не хочется засерать приложение, чисто для запуска на локальном компе эти данные заселялись
Siarhei
ладно, наверное сделаю еще баш с заселением отдельный
inqfen
А он в зависимости от server name на нужный проект отправляет
George
FROM postgres:9.6 COPY docker-entrypoint-initdb.d /docker-entrypoint-initdb.d COPY db /db USER root WORKDIR / EXPOSE 5432
Anonymous
Прокси nginx поднимают
А при проксировании нет проблем с определением ip пользователей?
George
вот пример докер файла
Anonymous
X forwarded for
Спасибо
inqfen
Первый ip в нем - ip клиента
George
#!/bin/bash set -e create_db() { createdb -U $POSTGRES_USER ololo_db } import_db() { pg_restore -O -U $POSTGRES_USER -d ololo_db /db/OLOLO_DB -v } echo "Creating db..." create_db echo "Importing db..." import_db
George
вот пример скрипта. Дампы баз лежат в db
George
получаешь готовый тестовый образ с запеченными тестовыми данными. Для прода - используешь ГОЛЫЙ постгрес.
George
@SiarheiKurylkin понятно?
Siarhei
Спасибо, буду пробовать 😝
George
парень, руками выставляй адреса для сети
George
это дибилизм самого компоуза, который адреса выбирает из серого диапазона
George
сначала 172.20.0.0
George
потом 172.21.0.0
George
и по списку далее
George
и, да, компоуз срать хотел на настройки докер демона
George
вариков два 1. руками создавать сети и задавать их в компоузе как external 2. в компоузе руками указать подсеть (адреса)
George
мне больше нравится первый путь, т.к. он более переносим между разрабами
George
даже ишьюйки есть в трекере докер-компоуза, но всех пох
George
@mxssl  ответил на твой вопрос?
George
и, да, я не могу представить зачем тебе на одной тачке более 2-5 компоузов единомоментно
George
наверное, у меня с фантазией плохо
Sergey
и по списку далее
а просто докер сеть с \16 создать нельзя?
Sergey
и на нее вешать уже
George
docker «bip» settings != те сети, которые компоуз выделяет
Sergey
bip😁
Woice
А из-за чего после запуска через докер-компоуз сразу уходит в exit (а если restart always, то постоянно рестартинг)? Это что-то с контейнером не так или с yml?
Sergey
если ямл невалидный он не запустится в принципе