如何使用 docker 自动化 wp 实例设置 + theme/plugin 自定义?
How to automate wp instance setup + theme/plugin customization with docker?
我想为 wordpress 创建一个 docker 图像,它会创建一个随时可用的 wp 实例,其中包含已经设置和完成的安装、激活的主题和插件以及其他配置。
我正在探索 WP CLI 以将其作为 Dockerfile 构建的一部分来执行此操作,但事实证明这是一个有状态的过程(它需要现有的 mysql 数据库已经就位),这在 docker 构建期间是不可能的.
我正在考虑创建一个 bash 脚本来启动一个 docker WP CLI 容器和一个纯 ubuntu/php 容器。然后 wp cli 容器将在 ubuntu/php 容器上安装和设置 wp 实例,该容器将成为事实上的 WP 容器,最后 wp cli 容器将被脚本关闭。
我不确定这是否是一个好的解决方案,您对此用例有更好的建议吗?
这是一个广泛的基于意见的问题。我认为您基本上需要弄清楚三件事:
- 查找并选择一个 Composer 模板来管理您的依赖项。例如 https://roots.io/bedrock/.
- WP-CLI 命令。我看你已经在了。
- 找到一种导出和导入 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 安装步骤,并为您提供虚拟内容,以可能针对自动化测试。
我想为 wordpress 创建一个 docker 图像,它会创建一个随时可用的 wp 实例,其中包含已经设置和完成的安装、激活的主题和插件以及其他配置。 我正在探索 WP CLI 以将其作为 Dockerfile 构建的一部分来执行此操作,但事实证明这是一个有状态的过程(它需要现有的 mysql 数据库已经就位),这在 docker 构建期间是不可能的.
我正在考虑创建一个 bash 脚本来启动一个 docker WP CLI 容器和一个纯 ubuntu/php 容器。然后 wp cli 容器将在 ubuntu/php 容器上安装和设置 wp 实例,该容器将成为事实上的 WP 容器,最后 wp cli 容器将被脚本关闭。
我不确定这是否是一个好的解决方案,您对此用例有更好的建议吗?
这是一个广泛的基于意见的问题。我认为您基本上需要弄清楚三件事:
- 查找并选择一个 Composer 模板来管理您的依赖项。例如 https://roots.io/bedrock/.
- WP-CLI 命令。我看你已经在了。
- 找到一种导出和导入 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 安装步骤,并为您提供虚拟内容,以可能针对自动化测试。