wordpress - 在 Kubernetes 上使用 Wordpress CLI 镜像

标签 wordpress kubernetes wp-cli

我们有一个基于官方 wordpress 图像的自定义 docker 图像,该图像包含我们正在开发的自定义主题。我们在这个项目上有 CI/CD,使用 Gitlab CI 并在裸机 Kubernetes 集群 v1.6 上部署分支以供审查。它工作正常,但是我们正在尝试通过在部署新实例时自动执行所需的手动操作来增强流程:

  • 安装 Wordpress
  • 设置管理员凭据
  • 设置站点名称和url
  • 激活主题
  • 激活插件
  • 导入数据

  • wp-cli拥有所需的所有命令。但是如何与容器和 K8S 一起使用呢?我们知道有两种选择:
  • 在我们基于 WordPress 的镜像中安装该工具。
  • 使用仅包含 wp-cli 的第二个容器并与主容器通信。

  • 有预装 wp-cli 的 WordPress 图像(例如 tutum-docker-wordpress ),但我们认为这不是正确的方法。在某些时候,我们希望使用 CronJob 资源和 cli 图像来每天导出数据,我们正在努力使该过程尽可能通用,我们希望坚持使用 official images所以第二个选项是首选。根据我们的研究,为了实现第二个选项,我们需要实现两件事:
  • 从 CLI 容器访问 WordPress 安装的文件。
  • 执行成功后不要重试。

  • 我们研究了几个选项但没有完全成功:
  • 同一个 pod 中的第二个容器 - 看起来可以使用 EmptyDir 在两个容器之间共享文件,但是即使容器成功,它也会重新启动。
  • InitContainer - 这听起来很诱人,因为数据库迁移是通过这种方式完成的。但是,除非您使用自定义图像,否则似乎无法获取文件。
  • Job - 它专为处理一次性任务而设计,但似乎无法访问 pod 中容器的文件。

  • 当您在 Kubernetes 上部署 Wordpress 的审查部署时,这似乎是一个非常常见的功能,并且应该已经有人这样做了。但是我们找不到有关此用例的任何特定信息。

    请根据您的要求提供有关实现所需实现的最佳方法以及如何实现的建议?

    最佳答案

    您可以使用基于 NFS 的文件系统并将您的 wordpress 内容挂载到任何类型的工作负载中。

    如果您需要帮助您入门的东西,请查看 https://matthewdavis.io/highly-available-wordpress-on-kubernetes/ .

    关于wordpress - 在 Kubernetes 上使用 Wordpress CLI 镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48623764/

    相关文章:

    php - WordPress 中的自定义短代码

    linux - 如何从 docker 容器 rsync 到我的主机

    kubernetes - 无法删除所有 Kubernetes 命名空间 Cronjob 中所有被驱逐的 pod

    yaml - Lando 工具命令语法

    html - 购物车页面上的冒号

    php - Wordpress-不要在代码标签内执行简码

    php - 在 Wordpress 中使用子主题

    kubernetes - Istio:单个网关和多个 VirtualService(每个位于不同的命名空间中)

    mysql - OSX Sierra/usr/bin/env : ‘mysqldump’ : No such file or directory