русло. Есть контейнер к примеру с фронтом на vue, FROM node:lts, установка и сборка пакетов через npm install и npm build, дальше запускаем код от юзера как полагается USER node и запуск через CMD npm run, на раннере все работает, проблем нет, но когда разраб пытается у себя на компе прибиндить папку с проектом через -v ./frontend:/app, то внутри докера в этой папке уже не хватает прав, т.к. папка уже от рута, что логично.
Если разраб запускает контейнер с -u root то все ок, но тогда получается мы имеем разницу в докер окружениях на машине у разраба и на раннере. И вариантов чтобы у разраба код запускался внутри контейнера от юзера node я так понимаю нет. Пересобирать каждый раз контейнер конечно не вариант.
Пока в голову пришло только держать два разных Dockerfile, один с не рутовым юзером для запуска на раннере, а второй с рутовым для локальной разработки... Может есть что почитать по этому поводу?
не страдай фигней, это вполне ок, когда у тебя среды разные
А часть разрабов сидит на винде и на маках, зоопарк получается. Выходит просто в docker-compose.yml на локальной разработке добавлю юзера рута и все.
плохая идея ))) лучше все-таки делать переносимым софт
Ну вот эта мысль и останавливает. Как сделать правильно?
https://gitlab.com/gecube/nginx-php-mysql-demo
Ага, увидел в docker-compose user: $USER_ID, а Dockerfile без указания юзера, таким образом есть гибкость можно запускать на раннере от ограниченного юзера, а у разраба на винде уже от рута. Спасибо!
Обсуждают сегодня