Programming
Comments 21
+1
Для почти идеальной системы не хватает системы «регистрации» доменов и записей в nginx по поднятию контейнера по его имени или, например, метке. Посмотрите проекты nginx-proxy и docker-flow для примера. С GitLab можно вообще на каждую ветку/mr/таг новое окружение поднимать.
+1

Возможно, проще nginx заменить на traefik. Он умеет динамически на базе меток переконфигурироваться

0

Поддерживаю traefik — он умеет динамически домены + let's encrypt, docker swarm, поддерживает интеграцию с кучей сервисов, включая логирование. Вдобавок, красивый дашборд. Очень крутая штука

0

Да, хорошая идея. Но я не в той ситуации, когда это может мне облегчить жизнь (слишком мало всего)

+1

Дурацкая идея прокидывать сокет докера в гитлаб раннер. В теории это дает возможность через неаккуратно написанный пайплайн скомпрометировать основную систему. Понятноп дело, что если все свое и доступ имеет только владелец, то поверхность атаки минимальна, но все равно неаккуратненько

0

Интересное замечание. Спасибо.


Но я дилетант и речь идет о домашней системе, так что...=)

0

Если я не ошибаюсь, без этого нельзя внутри CI делать docker build.

0

Ну, во-первых, это не всем нужно.
Во-вторых, внезапно (!) оказалось, что докер-образы можно собирать и без docker daemon. Смотрите в сторону libpod/buildah
В третьих, пес его знает как запускается gitlab-runner, но есть опция использования dind (docker-in-docker)

0

Привет:)


Да, проброс сокета нужен для билда образов. Это не единственный способ, но он мне показался самым понятным и простым.


Документация

+1

Bind9 тут как из пушки по воробьям. Вполне достаточно было бы dnsmasq.По моему мнению, идеально было бы использовать skydns https://github.com/skynetservices/skydns
Опенсорс тулза, написанная на го, использует etcd для хранения доменов. Т.е очень легко регистрировать новые домены.

0

Ну, учитывая, что я ничего не понимаю в сабже, я не вижу никакой проблемы в bind9. Установил и настроил за 10 минут, даже не вдаваясь в тех. детали (если не считать проблемы с bonjour). В конечном итоге все сводится к "работает — не трогай"

0

В dnsmasq та же задача решается путем добавления таких строк в стандартный конфиг


address=/nondv.home/192.168.0.3
address=/3.0.168.192.in-addr.arpa/192.168.0.3

все поддомены вида *.nondv.home будут откликаться на 192.168.0.3

+1
Я и не говорил что это проблема :)
Просто предложил варианты попроще.
Если «работает — не трогай», т.е изменятся конфиг не планируется — то всё замечатально и все равно что использовать.
Я лишь хотел сказать: если же прийдется часто добавлять/удалять домены то есть более удобные средства.
0

За skydns — спасибо, подумаем об использовании в своих проектах.
Но, к слову, bind или named не так уж сложно настроить...

+1
Все контейнеры создавались с флагом --network=host для простоты — достаточно было использовать разные порты в приложениях
Use bridge networks!
Для таких целей они намного удобней. У каждого контейнера будет свой IP, который можно добавить в /etc/hosts. Т.е. не придётся ставить NGinx, Traefik, DNS и т.д.
+1

В общем случае bridges network не отменяет необходимости реверс прокси....

+1

Редактировать hosts удобно, когда есть только один клиентский компьютер.
У меня же помимо ноутбука еще телефон и планшет. DNS нужен в любом случае.


по поводу IP — не вижу, каким образом это могло помочь в моей ситуации. Вместо запоминания портов мне бы пришлось запоминать IP-адреса. --network=host просто работает. Никакие вопросы безопасности меня не интересуют, это моя личная сеть.

Only those users with full accounts are able to leave comments., please.