Evgenii
что я понимаю и решение принимается ) напишу сейчас своё (оно другое)
Yevhen
мужики, извиняюсь если невнимательно читал, а может вам https://github.com/jwilder/dockerize подойдет?
Evgenii
Evgenii
кстати да, можно запускать контейнер с SED просто чтобы поменять конфиг, а NGINX сделать depends_on 🤕
Dmitry
Я пилю через j2
Evgenii
всё равно добавляется ещё одна сущность так сказать
Evgenii
ради простого действия это кажется слишком
Yevhen
раньше у меня еще такой вариант использовался
конфиг нжинкса:
map $http_host $rootpath {
~^www\.(?P<mypath>.+)\-labs\.cf$ $mypath;
default /;
}
server {
listen 443 ssl http2;
server_name ~^www\.(.+)\-labs\.cf$;
root /var/www/$rootpath/public;
include include/ssl.include;
include include/brotli.include;
...
}
Bogdan (SirEdvin)
Bogdan (SirEdvin)
И никаких проблем
Evgenii
Evgenii
у меня и так есть compose, накидывать ещё генерацию
Evgenii
Evgenii
странная логика, я думал devops это подходы , а не инструменты
Yevhen
и как на дев ходить то?
а код в зависимости от ветки лежал например в каталогах develop / feature / release
дергаешь в браузере www.develop-labs.cf или www.release-labs.cf - и все ок )
Evgenii
Yevhen
Evgenii
ага
не хотелось так делать тоже
Evgenii
я так сделал
.env
NGINX_HOST=google.com (или dev.google.com)
compose
services:
nginx:
image: nginx:latest
volumes:
- ./etc/nginx/server_names/${NGINX_HOST}.server_name:/etc/nginx/conf.d/server_name
nginx
server {
include conf.d/server_name;
Evgenii
собственно в репе лежит
/etc/nginx/server_names/
/etc/nginx/server_names/dev.google.com.server_name
/etc/nginx/server_names/google.com.server_name
и там
server_name google.com;
и
server_name dev.google.com;
мне кажется это самое меньшее из зол
Yevhen
Evgenii
Yevhen
а у меня (при любом из вариантов - или старый с использованием map, или новый с использованием dockerize) конфиг всегда один....
Evgenii
Yevhen
просто сейчас появилась надобность поднимать домен на каждую фичу в репе, а их может быть по десятку на день... Даже не успею все захардкодить )
Dmitry
Yevhen
ну ладно, насчет 100500 я погорячился, но штук 30-40 надо ((((
Dmitry
Evgenii
Dmitry
в запросе же висит host
Tadeusz
та lua вменяемый
Evgenii
у меня очень статичная задача и не хотелось использовать "динамику", возможно реально существуют оправданные флоу, где нужны динамические домены и всё такое и там имеет место на жизнь генератор конфига
Yevhen
Evgenii
мне кажется можно отпралять ветку хоть гет параметром и в nginx в зависимости от него в нужную папку отправлять
Dmitry
Evgenii
Dmitry
https://gist.github.com/cbmd/4247040
Dmitry
вот что первое в гугле... там стандартными средствами конфига доступна переменная $host
Evgenii
Dmitry
а, ок ок. пропустил требование.
Dmitry
интересно протестировать домены типа ../../../ )))
Dmitry
А кто тут реально генерит конифиги докера через ansible ?
Dmitry
я запарился по поводу ansible-pull и прав, не хотелось никаких ключей класть в контенер, но было бы интересно посмотреть
Evgenii
я ещё понимаю через консул или ansible зачем генерировать .env, может это даже правильно, я просто до этого ещё не дорос, но не более, чем .env или секреты
Dmitry
Ну так вот, что не так с sed?
Evgenii
Ну так вот, что не так с sed?
просто моя задача решается намного проще, вот и всё, хотелось найти самое простое решение, не накладывающее ограничений и не привлекающего инструментария, который не использовался ранее
Dmitry
Еще, кстати, можно прокинуть переменную окружения через `set_by_lua $server_name 'return os.getenv("NGINX_SERVERNAME")';
}` но это опять, вероятно, заставит вас пересобрать nginx
Evgenii
Bogdan (SirEdvin)
Так вы же пришли сюда именно потому, что он не справляется.
Bogdan (SirEdvin)
Evgenii
опять таки, делать git pull из ansible, сириусли?
Bogdan (SirEdvin)
Нет, а вот docker-compose файл им раздавать уже вроде нормально
Evgenii
docker-compose лежит в гите рядом с приложением, приложение собирает билд сервер и получается артефакт, Ansible может доставить куда надо этот артефакт и запустить docker-compose up -d
Evgenii
можно было бы на этапе билд сервера подставлять server_name, но хочется иметь возможность и руками разворачивать окружение, минуя его
Evgenii
а руками его может даже не я буду разворачивать, а разработчик, потому что и собирать свой nodejs код он хочет на этапе разработке руками, ему так удобнее
Evgenii
это всё хорошие инструменты, но упарываться и делать всё только ими или вставлять их там, где они не нужны это devops ради devops
Dmitry
Я, если честно, не понял, какое решение Вас устраивает)
Evgenii
я так сделал
.env
NGINX_HOST=google.com (или dev.google.com)
compose
services:
nginx:
image: nginx:latest
volumes:
- ./etc/nginx/server_names/${NGINX_HOST}.server_name:/etc/nginx/conf.d/server_name
nginx
server {
include conf.d/server_name;
Evgenii
собственно в репе лежит
/etc/nginx/server_names/
/etc/nginx/server_names/dev.google.com.server_name
/etc/nginx/server_names/google.com.server_name
и там
server_name google.com;
и
server_name dev.google.com;
мне кажется это самое меньшее из зол
Dmitry
.env лежит в репозитории?
Dmitry
как он проходит от ветки к ветке?
Dmitry
Tadeusz
ты до сих пор ебешься?)
Dmitry
я разработчик, хочу сделать ветку stg2. Что я должен знать для того чтобы все задеплоилось автоматом?)
Evgenii
Evgenii