У меня проблема с владением папками при попытке запустить WordPress на контейнерах Docker.Папки типа wp-content
и themes
принадлежат пользователю root, что не позволяет мне устанавливать темы и плагины из веб-интерфейса.
Цели
- Запуск WordPress в Docker.
- Получить тему из репозитория git (принадлежит нам).
- Уметь запускать WP-CLI из официального образа Docker (
wordpress:cli
). - Уметьустанавливать темы и плагины из веб-интерфейса.
- Все файлы и папки в
/var/www/html
должны принадлежать www-data
(uid 33).
Спецификации
- Docker версия 18.09.5, сборка e8ff056
- docker-compose версия 1.24.0, сборка 0aa59064
- отдельные экземпляры контейнеров для каждой службы - без kubernetes, swarm, stack и т. Д.
- My
docker-compose.yml
- My
dockerfile
(скопировано из репозитория git):
FROM wordpress:5
COPY --chown=33 ./ /var/www/html/wp-content/themes/theme/
Тома
Я не объявляю тома в моем докер-файле - это только те две строки выше, больше ничего.Фактически, это изображение существует только для копирования папки в изображение WordPress.Изображение WordPress (из которого происходит мое изображение) объявляет том в своем файле Docker.
Я объявляю тома в моем файле docker-compose, но при их отсутствии проблема сохраняется
Результаты
Владельцы файлов и папок ...
ОБНОВЛЕНИЕ
Возникла некоторая проблема сCOPY
шаг в сборке Docker, но я не могу понять, что.
Я изменил свой dockerfile
на
FROM alpine
COPY ./ /var/www/html/wp-content/themes/theme/
RUN chown -R 33:33 /var/www/html
RUN ls -n /var/www/html
Если я строю из alpine, uid 33
является владельцем:
Step 4/4 : RUN ls -n /var/www/html
---> Running in e9850fa85800
total 4
drwxr-xr-x 1 33 33 4096 Apr 12 19:34 wp-content
Я изменяю первую строку на FROM wordpress
, сейчас root
является владельцем :
Step 4/4 : RUN ls -n /var/www/html
---> Running in 2810cc37aaba
total 4
drwxr-xr-x. 3 0 0 4096 Apr 12 19:38 wp-content
Как мне перейти к получению желаемых результатов (то есть файлов тем на /var/www/html/wp-content/themes/theme/
и всех файлов и папок, принадлежащих www-data
(uid 33))?