wordpress - 如何在构建Docker镜像之前更改ElasticBeanstalk上的文件权限?

标签 wordpress docker amazon-elastic-beanstalk

我正在使用单个容器部署在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/uploadsVOLUME /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/

    相关文章:

    html - wordpress 帖子标题中 3 个点的 wordpress 奇怪行为

    docker - Docker 和 gitlab-runner 中的 Gitlab CE

    linux - 从远程服务器连接到 Docker 中的 Apache Web 服务器

    php - WordPress child 主题 : How do I add a custom style sheet from my parent theme to my child theme?

    javascript - 如果 href = # 则删除按钮

    docker - 无法在 docker compose 上启动容器

    ruby-on-rails - AWS Elastic Beanstalk Rails Bundler 失败

    ruby-on-rails - 如何在 Elastic Beanstalk 上的 Rails 4 Puma 应用程序中设置 RDS_DB_NAME

    amazon-web-services - 在 AWS Linux 2 上运行的 NGINX 配置中访问 Elastic Beanstalk 环境属性

    mysql - 将 MangoBlog 转换为 Wordpress 博客