Проблема
Я настраиваю локальную среду Wordpress с помощью docker-compose и официального изображения Wordpress из хранилища Docker.
Я нахожусь на окнах.
Проблема в том, что у меня есть некоторые проблемы с правами доступа к wp-контенту, и я не могу загрузить файлы из моей панели администратора Wordpress.
Что я уже сделал
Затем я проверил права доступа к файлам внутри контейнера, и это был вывод:
Как видите, владелец моего wp-content
- root
вместо www-data
.
Немедленное решение - открыть bash контейнера и дать
chown -R www-data:www-data /var/www/html/wp-content/
Это, конечно, работает, но я не хочу делать этот процесс каждый раз, когда начинаю новый проект WordPress.,Чтобы добиться этого, я создал Dockerfile
вот так:
FROM wordpress:5.1.1
# install dos2unix (fix problem between CRLF and LF)
RUN apt-get update
RUN apt-get install -y dos2unix
# increase upload limit
RUN touch /usr/local/etc/php/conf.d/uploads.ini \
&& echo "upload_max_filesize = 10M;" >> /usr/local/etc/php/conf.d/uploads.ini
# fix permissions issues
COPY entrypoint.sh /
RUN dos2unix /entrypoint.sh
RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]
И мой entrypoint.sh
выглядит так:
#!/bin/bash
echo Fixing permissions...
chown -R www-data:www-data /var/www/html/wp-content/
Но потом я понял, что переопределяюENTRYPOINT
исходного изображения WordPress, и контейнер всегда выходил с code 0
.
Затем я попытался с CMD
вместо ENTRYPOINT
, и я изменил свой Dockerfile
следующим образом:
FROM wordpress:5.1.1
# increase upload limit
RUN touch /usr/local/etc/php/conf.d/uploads.ini \
&& echo "upload_max_filesize = 10M;" >> /usr/local/etc/php/conf.d/uploads.ini
CMD chown -R www-data:www-data /var/www/html/wpcontent/
Но я всегда получаю сообщение об ошибке, что файл или папка не существует.
Я пытался использовать CMD
также вот так:
CMD ["chown", "-R", "www-data:www-data", "/var/www/html/wp-content/"]
но безуспешно.
Вопрос
Существует способ выполнить команду после оригинала ENTRYPOINT
?
Знаете ли вы иначелучший способ решить эту проблему?