@GregIv

Как указать docker'у пользователя linux от которого создавать файлы(миграции laravel)?

Доброго времени суток!

Окружение:
Win10 -> VmWare -> Xubuntu + PhpStorm + Docker + Docker-compose

Проблема:
Генерирую миграции для laravel:
sudo docker-compose exec php-cli php artisan make:migration TABLE_NAME

Они корректно создаются в "value каталог", но владелец у них root, соответственно редактировать я их не могу.

Плохие решения
1) Меняю права на необходимые файлы (очень не удобно)
2) Запускаю phpstorm из под root'а (не безопасно, и не смог подружить с браузером при дебагинге)

Не работающие решение
Также, попробовал избавится от sudo, с помощью второго способа из этой статьи. От sudo избавился, но проблема осталась, новые файлы по прежнему с владельцем root.

Вопрос
Как указать docker'у пользователя linux от которого создавать файлы(миграции laravel)?
  • Вопрос задан
  • 921 просмотр
Решения вопроса 2
orlov0562
@orlov0562
I'm cool!
у docker exec есть параметр -u в котором можно указать пользователя или его uid

Думаю, ты даже можешь в контейнере сменить uid рута на такой же как у тебя на хост машине и в итоге миграции будут создаваться внутри контейнера от рута, а в volume на хост машине будут принадлежать тебе. Но, это не точно :)
Ответ написан
@GregIv Автор вопроса
@rustler2000: у docker-compose exec есть параметр -u в котором можно указать пользователя или его uid

@GregIv: Попробовал, получил такую ошибки:
unable to find user SOME_USER: no matching entries in passwd file

@rustler2000: Или при создание контейнера надо делать пользователя с правильным uid/gid


Итого, решение:
1) Копируем строку с вашим пользователем из
/etc/passwd
2) Добавляем в нужный .docker файл такую инструкцию:
RUN echo "СТРОКА ИЗ П1" >> /etc/passwd
3) docker-compose -d --build
4) Запускаем с параметром -uSOME_USER (или указываем конструкцию user: SOME_USER в docker-compose.yml, а лучше выносим имя пользователя в .env)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы