我正在使用单个容器部署在Elastic Beanstalk上部署Docker镜像(Wordpress)。
我的部署zip文件包括:
public
文件夹,其中包含完整的wordpress构建Dockerfile
.ebextensions/permissions.config
标准的Wordpress镜像创建一个卷
VOLUME /var/www/html
,在我的Dockerfile中,COPY ./public /var/www/html
现在的问题是我无法使用Wordpress管理信息中心上传媒体。
Unable to create directory wp-content/uploads/2019/02. Is its parent directory writable by the server?
我试图使用
.ebextensions/permissions.config
中的EB配置更改上载文件夹的权限container_commands:
91writable_dirs:
command: |
chmod -R 777 /var/app/current/public/wp-content/uploads
cwd: "/var/app/current"
我从日志中看到,在运行
chmod
之前已构建docker镜像。我在其他SO帖子上看到有些人在/var/app/ondeck/
上运行脚本,但是the directory doesn't exist
失败尽管有上述所有内容,但我的问题实际上是如何使用当前设置将媒体上传到Wordpress。
编辑:当我将一个 shell 附加到docker容器并更改
wp-content/uploads
中VOLUME /var/www/html
的文件权限时,我能够上传媒体。那么如何才能使其在VOLUME上永久保留?
最佳答案
每当构建并运行wordpress docker镜像时,都会首先执行wordpress镜像的docker ENTRYPOINT。因此,更改目录权限的命令未执行。
这个ENTRYPOINT是位于/usr/local/bin/docker-entrypoint.sh
中的bash脚本
如果要执行命令,可以将命令添加到此脚本中,并且每次容器启动时都会调用该命令。
您可以通过以下方式进行操作-
docker-entrypoint.sh
docker-entrypoint.sh
并进行编辑该脚本将
chmod
命令添加到适当的位置。 Dockerfile
中添加一行以将此新入口点复制到位置
/usr/local/bin/docker-entrypoint.sh
关于wordpress - 如何在构建Docker镜像之前更改ElasticBeanstalk上的文件权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54780953/