wordpress - 如何使用 docker-compose 的官方 wordpress 图像修复 wp-content 的文件权限
问题描述
问题
我正在使用 docker-compose 和来自 docker 存储库的官方 wordpress 图像设置一个 Wordpress 本地环境。
我在窗户上。
问题是我在 wp-content 上有一些权限问题,我无法从我的 Wordpress 管理面板上传文件。
我已经做了什么
然后我检查了容器内的文件权限,这是输出:
如您所见, my 的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
运行命令?
你知道解决这个问题的更好方法吗?
解决方案
您可以修改./entrypoint.sh
脚本以在执行 chown 命令后运行原始图像的默认入口点脚本:
#!/bin/bash
echo Fixing permissions...
chown -R www-data:www-data /var/www/html/wp-content/
docker-entrypoint.sh apache2-foreground
推荐阅读
- sql - SQL:是否可以在选择查询的列中返回表数据类型?
- sql - sql或excel映射
- python - 如何在 Beautiful Soup 中打印出表格行的所有单元格
- php - 获取将 BigQuery 的结果存储到 Google Cloud Storage 的作业的进度或状态
- firebase - 为小部件调用两个不同端点的最佳实践?
- r - r 如何使用 lpSolve 和限制选定的行
- mysql - 根据月份和日期从数据库中获取最新记录
- reactjs - 刷新页面后做出反应,参数在生产中显示为空白,但在本地工作正常
- listview - xamarin 表单:根据条件打开或关闭列表视图开关?
- android - 使用构建工具版本 27.0.3 编译 Android 项目时出现奇怪的错误