Anonymous
docker exec -it CONTAINER_NAME sh -c "cd PROJECT_FOLDER/ && composer install"
Спасибо. Это рабочий вариант
Anonymous
s/bash/npm/
Можно ссылку на доку
Ильдар
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
Anonymous
Правильно не использовать
Что бы нжинкс запускался от рута внутри контейнера?
Anonymous
....
Anonymous
при сборке нужно добавлять && addgroup -g 82 -S www-data \ && adduser -u 82 -D -S -G www-data www-data \
Anonymous
к примеру
Anonymous
или нет?
Jürgen
Рутовые контейнеры это фейл
Anonymous
блять
Anonymous
с гугла
Anonymous
ты на вопрос можешь ответить а не доебыватся?
Anonymous
Может быть докерфайл с адд юзер Может быть без
Anonymous
я и спрашиваю как правильно
Jürgen
Слушай малыш во первых мат выключи во вторых айди не с потолка ставят в третьих прочти документацию
Pit
бокс!
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 /*, и черт с ними, с дырами в ПО! Не эксплуатируются из-за недостатка прав, пусть зияют.
Vladimir
и на опешнифт не запускается
не запускается по дефолту, но если очень надо, то запускается после 1-2 команд.
Vladimir
просто фраза неправильная прозвучала
Jürgen
Если у меня рутовый контейнер я могу заюзать багу в докере и выбраться из песочницы и тогда все кирдык всему
Artur
что за супер бага ?
Viktor
Так месяца еще не прошло как патчили дыру, с которой ты мог выбраться в host root и без рута в Докере (надеюсь я сейчас не ошибаюсь)
Jürgen
капитан, остановитесь :)
ну просят про базу же
George
Это другая история
George
Хотя они все параллельны
Jürgen
где гарантия что не будет другой дыры или 0-day
Viktor
Так давайте делать контейнеры вообще без пользователей, если даже есть прецедент повышения прав, да еще и на хостовой машине
paulwinex
приветы. вопрос такой. У меня есть некая хранилка общая к которой компы через fstab подключаются. И вот я хочу сделать аналогичные маунты внутри контейнера. Для этого есть чтото что можнопробить в докеркомпозе и оно заработало? или какието еще инструменты может. Или надо просто в докерфайле заполнять fstab так же как обычно? маунт делается по ip
paulwinex
просто я пока монтировал только локальные пути в контейнер и как с сетвым делать пока не понял
Anton
всем 👋 есть ли какой-нибудь безболезненный способ собирать логи из контейнеров (запущенных компоузом), которые пишут в свои stdout/stderr? собственно, интересует только способ их собирать (желательно в более-менее реальном времени). нашёл вот такую штуку github.com/ahmetb/dlog (читает логи контейнера по апихе через /var/run/docker.sock), но его выдачу нужно дополнительно парсить: отрезать таймстемпы и группировать многострочные логи (например, панику со стектрейсом).
Anton
можешь слать слоги куда нибудь ( kibana/graylog/etc) по gelf
вот как раз смотрю доку по gelf. а они потом не остаются локально? чтобы, например, если понимаешь, что что-то не дошло до логирующего сервиса, зайти и ручками сделать docker-compose logs?
Artur
можн заюзать fluend
Sergey
Всем привет, кто то с pm2 на докере работал? пишу в докерфайл: RUN cd /var/www/ && pm2 start queue.json && pm2 start monitoring.js
Sergey
при билде команды успешно выполняются все ок, но в pm2 list все пусто после старта контейнера, как так?
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 я как понял один раз выполняется? его надо направлять на файл, где все остальные команды будут запускаться, что нужны на контейнере?
Sergey
не знаю, всем)
George
ENTRYPOINT
Ответ нерелевантен
George
ENTRYPOINT & CMD определяют команду, которая выполнится при запуске контейнера
Pavel
да-да, уже нашел, что это некомильфо
Alexander
всем привет. подскажите, .env при сборке имейджа зашивать внутрь него по феншую или он должен монтироваться извне в контейнер, где будет крутиться имейдж?
по феншую один образ, разные переменные. Так что по идее надо при деплое передавать ) но это на вкус и цвет конечно
Pavel
да, уже выяснил, что не рекомендуется
George
.env - это обычно про докер-компоуз. Очевидно, что у тебя переменные окружения должны задаваться снаружи. В рантайме. Если есть фиксированные окружения, то можешь внутри контейнера определить два массива переменных для двух сред, а при запуска контейнера, например, передавать ключ -e ENV=PROD для выбора окружения
Alexander
да, уже выяснил, что не рекомендуется
Ну тут идеологический момент. Определять как будет работать приложение ты должен при деплое. А уж как реализовано - это твое дело, вон выше решение вполне себе норм, имхо