wordpress - 如何使用 docker 自动化 wp 实例设置 + 主题/插件定制?
问题描述
我想为 wordpress 创建一个 docker 映像,它创建一个可以使用的 wp 实例,该实例已经设置并完成安装、激活的主题和插件以及其他配置。作为 Dockerfile 构建的一部分,我正在探索 WP CLI 来做到这一点,但事实证明这是一个有状态的过程(它需要已经存在的 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 安装步骤,并为您提供可能针对自动化测试的虚拟内容。
推荐阅读
- python - 从列表结果中选择 1 个特定值
- raku - Perl 6 阻塞等待被杀死的 Proc::Async
- c# - AutoMapper 更新嵌套集合
- python - 在 Flask 中组织蓝图特定配置
- postgresql - sql如何为每个州选择最受欢迎的项目
- java - android audiomanager 中的 MODE_IN_COMMUNICATION 错误?
- php - 在 Codeception 中为单元测试套件添加自定义 Helper 方法的正确方法是什么?
- mysql - 如何在不知道数据库表模式的情况下按分区加载到 Spark
- typescript - 从类 Generic 定义类型
- c# - 提示在 Internet Explorer 中打开 pdf