如何在Google Cloud Run上运行WordPress?

dts*_*dts 6 google-cloud-run

Google Cloud Run是新的。是否可以在其上运行WordPress docker?也许使用gce作为mysql / mariadb的数据库。找不到关于此的任何讨论

Ahm*_*gle 6

虽然我认为这是可能的,但是花时间来完成这个练习并不好。Cloud Run 可能不是适合这项工作的工具。

更新有人在博客上发布了有关此的教程(使用风险自负):https ://medium.com/acadevmy/how-to-install-a-wordpress-site-on-google-cloud-run-828bdc0d0e96

以下是需要考虑的几点;

  1. (更新:这不再是真的)当前 Cloud Run 不支持本机连接到 Cloud SQL (mysql)。有一些黑客行为,例如在容器内旋转 cloudsql_proxy:How to secure connect to Cloud SQL from Cloud Run? 可以正常工作。

  2. 您需要wp-config.php提前准备并将其烘焙到容器映像中。由于您的容器会时不时地被擦除,因此您应该安装博客(创建一个wp-config.php)并将生成的文件烘焙到容器映像中,这样当容器重新启动时,它就不会丢失您的 wp-config.php。

  3. 持久存储可能是一个问题:与第 2 点类似,重新启动容器将删除容器启动后保存到容器中的文件。您需要确保安装的插件、图像上传等内容不应写入容器的本地文件系统。(我不确定 WordPress 是否允许您将此类文件写入 GCS/S3 存储桶等其他位置。)为了实现这一点,您可能最终会使用类似https://wordpress.org/plugins/wp-stateless的东西/插件或gcs-media-plugin

    写入 Cloud Run 容器的本地文件系统的任何文件也会计入容器的可用内存,因此如果您继续向应用程序写入文件,则应用程序可能会耗尽内存。

长话短说,如果您可以确保 WP 安装不会在本地磁盘上写入/修改文件,那么它应该可以正常工作。

我认为 Cloud Run 可能不适合这里的工作,因为它运行“无状态”容器,并且使 WordPress 无状态非常困难,特别是当您安装主题/插件、配置内容等时。更不用说,您的 WordPress Cloud SQL Server 不会是“无服务器”的,您将在它没有收到任何请求时为其付费。

(PS 这将是一个很好的练习,可以尝试并写一篇博客文章!如果您这样做,请将其添加到Awesome-cloudrun存储库中。)

  • 我创建了 Cloud Run WordPress 设置。我计划在接下来的几天内在我的网站上记录这一点。我还在撰写一些有关 Cloud Run 安全性的文章。CloudRun 上的 WordPress 运行得非常好。冷启动还不错(2000 毫秒),热实例的页面响应几乎是即时的。设置与自动缩放的 WordPress 系统没有太大区别。 (3认同)
  • @MartinOmander - 我没有写这篇文章的原因之一是我决定不推荐 Cloud Run for WordPress。在现实世界的 WordPress 网站中,您需要不断地使用补丁和更新来更新安装。我仍然认为 WordPress 采用老式方式效果最好:Cloud SQL + 负载均衡器 + CDN + GCE。WordPress 不太适合补丁和更新的自动化管道。 (3认同)