Anonymous
Ильдар
man sed
Ильдар
s/regexp/replacement/
Attempt to match regexp against the pattern space. If successful, replace that portion matched with replacement. The replacement may contain the special character & to refer to that por‐ tion of the pattern space which matched, and the special escapes \1 through \9 to refer to the corresponding matching sub-expressions in the regexp.
Ilya
Господа, подскажите что-нибудь годное про микросервисы в связке с k8s (или не в связке), именно про деплой, поддержание их жизни там, про облака и прочее?
Anonymous
Ребят подскажите.
Как правильно касательно пользовавтелей внутри контейнеров?
Nginx
PHP
Jürgen
Jürgen
Anonymous
....
Anonymous
при сборке нужно добавлять
&& addgroup -g 82 -S www-data \
&& adduser -u 82 -D -S -G www-data www-data \
Anonymous
к примеру
Anonymous
или нет?
Jürgen
Рутовые контейнеры это фейл
Jürgen
Anonymous
блять
Anonymous
с гугла
Anonymous
ты на вопрос можешь ответить а не доебыватся?
Anonymous
Может быть докерфайл с адд юзер
Может быть без
Anonymous
я и спрашиваю как правильно
Jürgen
Слушай малыш во первых мат выключи во вторых айди не с потолка ставят в третьих прочти документацию
Pit
бокс!
Viktor
George
George
ибо это не очень секурно
George
и на опешнифт не запускается
George
кратко - возможностей для изоляции процесса, если он убежал из песочницы докера - меньше
Jürgen
Почему?
https://engineering.bitnami.com/articles/why-non-root-containers-are-important-for-security.html
Sergey
Почему?
потому что это дефолт вообще
Viktor
https://engineering.bitnami.com/articles/why-non-root-containers-are-important-for-security.html
>Because anyone who accesses your container running as root can start undesirable processes
То есть некий кто-то получил доступ по SSH на мой хост, при том под рутом, ведь без него exec в контейнер не выполнишь. Добрался до аппликейшена, работающего под рутом в контейнере, и тут-то он возликовал?
У меня ощущение, что если такое произошло, root в Docker проблеца -цатая.
Если же нашу апликуху ломают хацкеры из вне, мне точно должно лучше спаться от мысли, что они не могут сделать rm -rf /*, и черт с ними, с дырами в ПО! Не эксплуатируются из-за недостатка прав, пусть зияют.
Jürgen
>Because anyone who accesses your container running as root can start undesirable processes
То есть некий кто-то получил доступ по SSH на мой хост, при том под рутом, ведь без него exec в контейнер не выполнишь. Добрался до аппликейшена, работающего под рутом в контейнере, и тут-то он возликовал?
У меня ощущение, что если такое произошло, root в Docker проблеца -цатая.
Если же нашу апликуху ломают хацкеры из вне, мне точно должно лучше спаться от мысли, что они не могут сделать rm -rf /*, и черт с ними, с дырами в ПО! Не эксплуатируются из-за недостатка прав, пусть зияют.
ты в песочницу прокидываешь эсктра пермишенны
Jürgen
Vladimir
Vladimir
просто фраза неправильная прозвучала
George
>Because anyone who accesses your container running as root can start undesirable processes
То есть некий кто-то получил доступ по SSH на мой хост, при том под рутом, ведь без него exec в контейнер не выполнишь. Добрался до аппликейшена, работающего под рутом в контейнере, и тут-то он возликовал?
У меня ощущение, что если такое произошло, root в Docker проблеца -цатая.
Если же нашу апликуху ломают хацкеры из вне, мне точно должно лучше спаться от мысли, что они не могут сделать rm -rf /*, и черт с ними, с дырами в ПО! Не эксплуатируются из-за недостатка прав, пусть зияют.
И да, и нет. Прочти, что я написал
Jürgen
Если у меня рутовый контейнер я могу заюзать багу в докере и выбраться из песочницы и тогда все кирдык всему
George
Artur
что за супер бага ?
Vladimir
Viktor
Так месяца еще не прошло как патчили дыру, с которой ты мог выбраться в host root и без рута в Докере (надеюсь я сейчас не ошибаюсь)
Jürgen
George
George
Это другая история
Jürgen
George
Хотя они все параллельны
Jürgen
где гарантия что не будет другой дыры или 0-day
Viktor
Так давайте делать контейнеры вообще без пользователей, если даже есть прецедент повышения прав, да еще и на хостовой машине
paulwinex
приветы. вопрос такой. У меня есть некая хранилка общая к которой компы через fstab подключаются. И вот я хочу сделать аналогичные маунты внутри контейнера. Для этого есть чтото что можнопробить в докеркомпозе и оно заработало? или какието еще инструменты может. Или надо просто в докерфайле заполнять fstab так же как обычно?
маунт делается по ip
paulwinex
просто я пока монтировал только локальные пути в контейнер и как с сетвым делать пока не понял
Anton
всем 👋 есть ли какой-нибудь безболезненный способ собирать логи из контейнеров (запущенных компоузом), которые пишут в свои stdout/stderr? собственно, интересует только способ их собирать (желательно в более-менее реальном времени). нашёл вот такую штуку github.com/ahmetb/dlog (читает логи контейнера по апихе через /var/run/docker.sock), но его выдачу нужно дополнительно парсить: отрезать таймстемпы и группировать многострочные логи (например, панику со стектрейсом).
Artur
Artur
Artur
можн заюзать fluend
Sergey
Всем привет, кто то с pm2 на докере работал?
пишу в докерфайл:
RUN cd /var/www/ && pm2 start queue.json && pm2 start monitoring.js
Sergey
при билде команды успешно выполняются все ок, но в pm2 list все пусто после старта контейнера, как так?
Mikalai
Sergey
а в чем разница?
Sergey
типа при билде он перезапускает контейнер?
Viktor
при билде он билдит имедж
Sergey
ну команды ведь эти он в контейнере выполняет?
Viktor
В контейнере выполняется то что ты пишешь в CMD
Anonymous
Latest commit d6079c0 @ https://github.com/g0x7f/devOps-patch
MySQL 8 for Administrators : http://bit.ly/2IEqI0O
CBT Nuggets - Database Fundamentals: http://bit.ly/2Nw8VYq
Introduction to MongoDB: http://bit.ly/2Uafu5w
O'Reilly - Berglund and McCullough on Mastering Cassandra for Architects: http://bit.ly/2BWlp6Y
The Ultimate MySQL Bootcamp: Go from SQL Beginner to Expert: http://bit.ly/2IFytU2
Udemy - The Complete SQL Bootcamp: http://bit.ly/2BTbbEk
Pavel
всем привет. подскажите, .env при сборке имейджа зашивать внутрь него по феншую или он должен монтироваться извне в контейнер, где будет крутиться имейдж?
Sergey
CMD я как понял один раз выполняется? его надо направлять на файл, где все остальные команды будут запускаться, что нужны на контейнере?
Pavel
Sergey
не знаю, всем)
Anton
George
George
ENTRYPOINT & CMD определяют команду, которая выполнится при запуске контейнера
George
Pavel
да-да, уже нашел, что это некомильфо
Alexander
Pavel
да, уже выяснил, что не рекомендуется
George
.env - это обычно про докер-компоуз. Очевидно, что у тебя переменные окружения должны задаваться снаружи. В рантайме. Если есть фиксированные окружения, то можешь внутри контейнера определить два массива переменных для двух сред, а при запуска контейнера, например, передавать ключ -e ENV=PROD для выбора окружения
Alexander
да, уже выяснил, что не рекомендуется
Ну тут идеологический момент. Определять как будет работать приложение ты должен при деплое. А уж как реализовано - это твое дело, вон выше решение вполне себе норм, имхо
Viktor
George