Как создавать файлы на хосте, используя Docker и текстовый редактор для локальной разработки (проблема с разрешениями) - PullRequest
1 голос
/ 30 мая 2019

Я запустил Docker-контейнер для локальной разработки (MySQL-контейнер и Prestashop-контейнер, как описано в Docker Hub).Также монтировал тома в оба контейнера.

Но при редактировании файлов на моем компьютере, например, с возвышенным текстом, я не могу создать какой-либо файл, потому что в файлах Docker владельцем является www-data: www-data.

Пробовал загруженные файлы томов для моего пользователя: группа, но, конечно, он разбивает сайт ...

Также следовал этим инструкциям для linux и docker https://docs.docker.com/install/linux/linux-postinstall/ (для управления Dockerкак пользователь без полномочий root)

$ docker network create prestashop-net
$ docker run -ti --name mysql57 --network prestashop-net -e MYSQL_ROOT_PASSWORD=admin -p 3307:3306 -v /home/nicolas/docker/db-persist/mysql5.7:/var/lib/mysql --user $(id -u):$(id -g) -d mysql:5.7
$ docker run -ti --name ps1751 --network prestashop-net -e DB_SERVER=mysql57 -p 8080:80  -v /home/nicolas/Dropbox/proyectosWeb/docker/ps1751:/var/www/html --user $(id -u):$(id -g) -d prestashop/prestashop

Какой шаг мне здесь не хватает, чтобы иметь возможность редактировать / создавать / удалять файлы из возвышенного текста (файлы, которые находятся внутри контейнера)?

Iхочу иметь возможность добавлять / удалять / редактировать файлы из моего хоста и возвышенного текстового редактора без проблем с разрешениями.

Спасибо!

1 Ответ

0 голосов
/ 11 июня 2019

Хорошо, наконец, после тестирования нескольких образов докера, этот работал нормально https://aboullaite.me/dockerizing-your-lamp-enviroment/.

Я думаю, что по какой-то причине (извините, новичок в докере) образ prestashop является минимальной настройкой и не отображает ни UID, ни GID с хоста на контейнер ... поэтому невозможно изменить любой файл с хоста без sudo это.

Эта строка в Dockerfile сделала трюк "RUN usermod -u 1000 www-data", но, конечно, мой пользователь (на моем компьютере) - GID = 1000, а группа пользователя, работающего внутри контейнера, - www-data ( пользователь также www-data, потому что это сервер apache), и он работает из-за этого. Если бы у моего пользователя был другой GID и группа внутри контейнера отличалась, это потребовало бы некоторых изменений.

Но для среды apache, которая была тем, что я искал, она прекрасно работает, и теперь я могу создавать / удалять и изменять файлы внутри контейнера с моего компьютера в моем превосходном редакторе без проблем с разрешениями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...