首页 > 解决方案 > 如何使用 docker 自动化 wp 实例设置 + 主题/插件定制?

问题描述

我想为 wordpress 创建一个 docker 映像,它创建一个可以使用的 wp 实例,该实例已经设置并完成安装、激活的主题和插件以及其他配置。作为 Dockerfile 构建的一部分,我正在探索 WP CLI 来做到这一点,但事实证明这是一个有状态的过程(它需要已经存在的 mysql 数据库),这在 docker 构建期间是不可能的。

我正在考虑创建一个 bash 脚本,它会启动一个 docker WP CLI 容器和一个纯 ubuntu/php 容器。然后 wp cli 容器将在 ubuntu/php 容器上安装和设置 wp 实例,该容器将成为事实上的 WP 容器,最后 wp cli 容器将被脚本关闭。

我不确定这是否是一个好的解决方案,您对此用例有更好的建议吗?

标签: wordpressdockerwp-cli

解决方案


这是一个广泛且基于意见的问题。我认为你基本上需要弄清楚三件事:

  1. 查找并选择一个 Composer 模板来管理您的依赖项。例如https://roots.io/bedrock/
  2. WP-CLI 命令。我看你已经开始了。
  3. 找到一种导出和导入 WordPress 配置的方法。例如https://wordpress.org/plugins/wp-cfm/

一个基本的设置程序可能看起来像这样:

# Download WordPress core and plugins.
composer install -n --no-dev

# Default DB name and user.
wp config create --dbname="test" --dbuser="root" --dbpass="" --dbhost="127.0.0.1"

# Install a basic site. The title doesn't matter.
wp core install --url="blog.localhost" --title="Lorem ipsum dolor sit amet" --admin_user="admin" --admin_password="admin" --admin_email="webmaster@example.com" --skip-email

# Language.
wp language core install de_DE

# Activate WP-CFM and import default conf.
wp plugin activate wp-cfm
wp config pull default

您不一定需要 Composer。您也可以仅使用 WP-CLI 下载 WordPress 和插件。Composer 的优点是版本控制,您只需要一个 composer.json 和 -.lock 文件来保持您的 repo 干净。然后,只需一个命令即可composer install下载您和您的同事的所有内容。很大的优势还在于vendor/可以在构建期间根据 composer.lock 校验和进行缓存。这可以大大缩短构建时间。

除了上面的示例例程,您还可以尝试导入现有的数据库备份,然后只需更新基本 URL 并导入更新的配置。这将跳过 WordPress 安装步骤,并为您提供可能针对自动化测试的虚拟内容。


推荐阅读