Anonymous
нужен ли multi-staged build для докерфайла, если у меня ci компилирует проект и потом докер билдит образ из папки build?
Anonymous
или лучше пусть в докере еще раз билдится ? в несколько этапов
Sergey
правда тогда если контейнер помрет - умрет коннект
тогда получается что надо строить HA
а если так то получается будет какой то отказоустойчивый NFS прокси😂
Sergey
с хоста до nfs
Sergey
PVC-по сути указатель на PV который является томом для NFS
PV, PVC - сущности k8s, хост их не поймет
Vladimir
Vladimir
хост на boot2docker
Sergey
если у вас контейнер может общаться с NFS но не может с хостом, значит надо либо привязать контейнер в две стороны как с двумя NFS, либо сам хост с NFS(или с шарой)
Sergey
и если прокинуть оба PV в одну папку, они там будут синькаться, получится что контейнер будет пркоси к NFS от хоста😁
Sergey
тома k8s работают через storageclass, я по крайней мере не пробовал шарить хост с контейнером, ибо ноды обычно используются как ресурсы для подов, или вы имеете в виду вообще левый хост не в кластере?
Sergey
вот это не понял
если моя подсказка не помогла попробуйте тут спросить @kubernetes_ru
Vladimir
что то мне подсказывает что лучше вообще как то по другому сделать) очень костыльно все выглядит
Sergey
идея сама по себе глупая
Sergey
либо вы напрямую к NFS стучитесь с хоста
Sergey
либо в шару где NFS пошарена
Sergey
а через контейнер да, будет костыльный прокси NFS
Sergey
либо упороться шарить сам том изнутри контейнера с хостом😂😂😂
типа smb://ip.addr - будет приходить в папку контейнера через externalIP, а оттуда будет видеть директории внутри NFS
Sergey
ну это совсем наркомания😂😂😂
Dmitriy
Ребят, а как сделать graceful reload контейнера с nginx?
Anonymous
нужен ли multi-staged build для докерфайла, если у меня ci компилирует проект и потом докер билдит образ из папки build?
Anonymous
или лучше пусть в докере еще раз билдится ? в несколько этапов
Gaiaz
Den
Всем привет)
Подскажите, пожалуйста, как грамотнее реализовать готовыми средствами следующее: имеется контейнер с nginx (для прокси), и множество контейнеров на которые проксируются запросы, все контейнеры разные (различное ПО). Все контейнеры могут быть слинкованы с другими контейнерами (базы данных). Все запускается через docker-compose.yml.
bebebe
Den
Мне нужно автоматически, у меня сложная конфигурация nginx, видел эту ссылку немного не то, статика вся на nginx
bebebe
Den
По факту мне нужно автоматизировать как то связывание, что бы одной командной всё стартовало, контейнеры добавляются руками не динамически
Den
Den
Много docker-compose проектов
Den
Сейчас реализовал через external_links и явное указание имени контейнеров в сервисе
bebebe
вы можете настроить бриджи через brctl или openvswitch между докер сетями
bebebe
http://docs.openvswitch.org/en/latest/howto/docker/
Den
И все контейнеры могут быть на 80 порту...
bebebe
Den
bebebe
Сергей
подскажите как можно удалять старые образы? у меня автоматом он обновляется и тарый остается лежать)
Den
Да
Это тоже подойдет верно? https://developer.ibm.com/recipes/tutorials/bridge-the-docker-containers-to-external-network/
bebebe
Je
Den
Sun
господа, вопрос на засыпку.
Дано:
докер бежит под рутом.
Есть контейнер с подключенным волумом.
По умолчанию на папку разрешения 777, на создаваемые из докера файлы — внутренний id из контейнера.
Если кто-то снаружи меняет разрешения на файл, допустим, на nobody:crontab, то конт теряет доступ к файлу или нет?
Den
Еще такой вопрос, подскажите, пожалуйста: как запустить сервер на 80 порту (т.е. Под root), но файлы создаваемые веб приложением внутри контейнера имели права обычного пользователя? Запускаю docker через sudo.
Alexandra
Насчет рута не уверена, но вот пользователь созданный внутри контейнера - точно потеряет
bebebe
bebebe
и докер должен быть свеженький
Sun
Пока что пришлось в анзибл прописать проверку и перенакатывание 666 на файл.
Но я придумаю как это победить
Vladimir
можно попробовать скостылить с inotify например.. повесить фикс прав на событие в фс
Sun
Инстанс не статичный. Мне надо будет это в анзибл забить
Anonymous
Компиляцию есть смысл выносить в отдельный стейдж тк например в общем образе сами библиотеки для компиляции не нужны
да, это верно. Ранее так и было сделано, в 3 этапа.
Сейчас к приложению прикрутил ci
и теперь билд/релиз и прочие штуки делаются автоматом через ci.
Чтобы ускорить процесс сборки
Я убрал стейджи из докера
И при docker build образ собирается уже из готовой сборки, которую сделал ci
т.е. по сути докерфайл:
FROM nginx-alpine
WORKDIR /app
COPY ./build/ ./
Вопрос в том стоит ли оно того? Или лучше оставить мультистейдж-билд?
Тогда получается, что приложение будет собираться лишний раз.
NO
Народ, а как можно в docker-compose отправить image в private registry?
Bohdan
как и без docker-compose
Bohdan
docker login
docker-compose push
Fess
Всем привет! Подскажите пожалуйста - есть хост-машина, с 2-мя сетевыми интерфейсами, с IP вида 192.168.1.1 и 192.168.1.2. Хочу на ней запустить 2 докер-контейнера с tftp-сервером, таким образом, чтобы каждый контейнер привязывался с одному из сетевых интерфейсов хостовой машины, и был доступен извне по адресам 192.168.1.1:69 , 192.168.1.2:69 .
Подскажите, реально ли такое сделать?
h1dw0w
при запуске в -p замапь
h1dw0w
-p 192.168.1.1:69:69
h1dw0w
пробовал так?
Fess
Fess
-p 192.168.1.1:69:69
работает, спасибо! Все оказалось проще:) А то я думал огород с сетями городить
Boris
Подкажите, nginx контейнер энтрипоинта service nginx start сразу же завершается с exit code 0 - что может быть причиной?
Алексей
активного процесса нет, значит контейнеру пора умереть
Sun
потому что в контейнере не сервисы запускаются
Sun
посмотри в оригинальный докерфайл nginx/nginx и всё станет понятно
Алексей
походу все готовились к такому вопросу ))
Sun
все наступали на эту граблю. Поэтому никто никого не унижает. :)
Dmytro 🇺🇦
Это правильно поведение)
Boris
Спасибо
Boris
Понимаю, что все логично, просто не понятно досихпор, почему service nginx start при сборке внутри dockerfile - заставит его работать правильно, а в энтрипоинте -в ыйдет)
Boris
Ну, попробую сбилдить с ENTRYPOINT ["nginx", "-g", "daemon off;"]
Sun
Поэтому, бойся всяких контейнеров типа "Весь LAMP в одном контейнере"
Boris
Сбилдился, и это решило ошибку, спасибо еще раз!)
Sun
Их собирали какие-то поцы, которые на шесту вертели всю идеологию контейнеризации
Sun
У контейнеризации есть два главных свойства:
- Повторяемость
- Масштабирование
Первое означает, что на каком бы пылесосе ты не запускал контейнер, он будет работать точно так же, как на любом другом.
Второе означает, что если ты по нужде запустишь десять тысяч одинаковых контов, они все будут работать одинаково.
Sun
От этого и пляши.
Не надо делать из докера идола — далеко не везде он нужен и использовать его бездумно тоже некомильфо.
Но там где нужен — он бесценен.
bebebe
https://12factor.net/