Проблемы с разрешением между docker контейнерами и хост-системой при редактировании файлов - PullRequest
0 голосов
/ 08 марта 2020

Я использую стек LAMP на docker под управлением сервера Ubuntu - php, веб-сервера mariadb и httpd. Я использую docker -compose и Dockerfiles для сборки php и httpd.

Мои php и apache сервисы в docker -compose имеют том, который сопоставляет мой "public_ html "папка (где у меня есть мои файлы и папки, которые нужно редактировать) в папку var / www/html на веб-сервере.

" public_ html "имеет владельца / группу ubuntu: ubuntu (id 1000) и gid 1000).

Я могу смонтировать "public_ html" с помощью SAMBA и редактировать файлы / создавать / удалять папки в моей хост-системе, но это не позволяет процессам php и apache делать это .

(Я попытался установить Wordpress, и он не смог записать исходный файл конфигурации, потому что веб-сервер или php не могли записать в папку).

Я исправил это с помощью изменив владельца / группу "public_ html" (и рекурсивно все файлы и папки внутри него) на www-data: www-data. Затем Wordpress смог создать файл конфигурации - но, как и ожидалось, я потерял способность редактировать файлы внутри "public_ html" в моей хост-системе.

После нескольких l чтения и тесты Я до сих пор не нашел работающего решения, которое бы работало как для моей IDE на моем хосте, так и для процессов php и apache, работающих в docker, поэтому мой вопрос: как я могу заставить эту работу работать?

Я использую VSCode в моей системе macOS хоста. Если я введу «id» в терминале моей хост-системы, я увижу, что мой uid = 501 и мой gid = 20, поэтому я предполагаю, что если я смогу заставить php и apache работать под этим пользователем / группой, и измените владельца и группу public_ html на них, тогда и php, и apache в docker, и моя IDE на хосте ma c сможет работать с файлами и папками. внутри "public_ html".

...