【发布时间】:2019-04-18 13:27:18
【问题描述】:
问题
我正在使用 docker-compose 和 docker 存储库中的官方 wordpress 图像设置一个 Wordpress 本地环境。
我在窗户上。
问题是我在 wp-content 上有一些权限问题,我无法从我的 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/
但后来我意识到我正在覆盖原始 wordpress 图像的ENTRYPOINT,并且容器总是以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 之后运行命令?
你知道解决这个问题的更好方法吗?
【问题讨论】:
-
如何创建容器?
标签: wordpress docker docker-compose