使用 Dockerfile 预装插件的 WordPress 图像

标签 wordpress docker plugins dockerfile

将插件文件夹复制到 WordPress 默认图像目录并创建新图像。将其推送到 Docker Hub 上的存储库,然后拉回图像并运行容器,但未安装插件。在容器中找不到文件夹。

docker-compose.yml

version: '3.3'
services:
  wp:
    image: "arslanliaqat/wordpresswithplugin:1.0"
    volumes:
      - './wordpress:/var/www/html'
    ports:
      - "8000:80"
    environment:
      WORDPRESS_DB_PASSWORD: qwerty
  mysql:
    image: "mysql:5.7"
    environment:
      MYSQL_ROOT_PASSWORD: qwerty
    volumes:  
      - "my-datavolume:/var/lib/mysql"
volumes: 
  my-datavolume:

文件
FROM wordpress:php7.1-apache

COPY preferred-languages /var/www/html/wp-content/plugins/preferred-languages/

无法预装插件

最佳答案

所以这就是正在发生的事情:

在构建自定义图像时,添加插件文件夹 /var/www/html/wp-content/plugins/preferred-languages/这工作得很好。

您可以通过简单地运行 docker run -it --rm arslanliaqat/wordpresswithplugin sh 来测试。和 cd /var/www/html/wp-content/plugins您应该会看到该文件夹​​。

当您使用 docker-compose.yml 文件时文件夹丢失的原因是因为您将卷挂载在已经存在的文件夹上。尝试从 docker-compose.yml 文件中的 wp 服务中删除卷声明,然后您应该能够看到您的插件文件夹。

我建议您使用 wordpress:php7.1-apache 作为您的 wp 服务,并以与安装 wordpress 相同的方式安装您的插件文件夹

例子:

version: '3.3'
services:
  wp:
    image: "wordpress:php7.1-apache"
    volumes:
      - './wordpress:/var/www/html'
      - './preferred-languages:/var/www/html/wp-content/plugins/preferred-languages'
    ports:
      - "8000:80"
    environment:
      WORDPRESS_DB_PASSWORD: qwerty
  mysql:
    image: "mysql:5.7"
    environment:
      MYSQL_ROOT_PASSWORD: qwerty
    volumes:  
      - "my-datavolume:/var/lib/mysql"
volumes: 
  my-datavolume:

是否有特定原因需要插件已经出现在图像中?

更新

我创建了一个简单的要点,它应该可以完成您想要做的事情。入口点缺少对现有主题/插件目录等的检查,但这应该作为 POC

https://gist.github.com/karlisabe/16c0ccc52bdf34bee5f201ac7a0c45f7

关于使用 Dockerfile 预装插件的 WordPress 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56576800/

相关文章:

php - 如何将自定义图像大小添加到 wordpress 但将它们放在管理员中?

docker - 无法计算缓存键 : ".csproj" not found

尽管在 PATH(和可执行文件)中,但未找到 Docker 入口点

Docker:消息仅显示不受支持

php - 显示ACF的中继字段

wordpress - 如何从 WordPress 前端更改网站的主题?

javascript - wordpress - 如何将所见即所得添加到具有特定类的文本区域

plugins - Extjs 4网格过滤

php - 将自定义结账字段值保存为 WooCommerce 上的用户数据

c# - 具有托管可扩展性框架的沙盒插件