我已经使用 Docker 成功安装了 Wordpress。几乎一切正常,包括在 WordPress 管理控制台中手动更新插件和主题,这表明文件权限是正确的。我遇到的问题是让 WordPress 自动插件和主题更新正常工作。自动插件和主题更新适用于我的非 Docker 托管的 Wordpress 实例。
我使用绑定安装,以便将我的持久数据持久保存到本地文件系统上。与 docker 卷相比,我更喜欢这些,主要是因为我比 docker 卷更了解文件系统。这样设置是为了让 docker 容器提供核心 Wordpress 文件,并且绑定安装提供 wp-content 文件夹。这意味着 Wordpress 核心更新很容易 - 我只需更新容器映像并替换核心文件 - 它们永远不会写入本地文件系统,它们保留在容器中。
我可以让 Wordpress CLI 使用 cron 作业进行更新。这很不优雅,因为我需要完整部署 Wordpress,包括我的文件系统以及 docker 容器中的工作 wp-config 文件。我更喜欢让 WordPress 控制的自动更新工作。
我花了很多时间在互联网上搜索,阅读 Stack Exchange,阅读我能找到的内容。我尝试过手动调用 wordpress cron PHP 脚本。我没有办法让它正常工作,我希望得到一些帮助:slight_smile:
此屏幕截图显示有可用更新,自动更新已启用,并且可以从 Wordpress 控制台进行手动更新。
这是我的 docker compose 文件
services:
wordpress:
container_name: wordpress
image: wordpress:php8.3-apache
restart: unless-stopped
environment:
TZ: Pacific/Auckland
WORDPRESS_DB_HOST: (removed)
WORDPRESS_DB_NAME: (removed)
WORDPRESS_DB_USER: (removed)
WORDPRESS_DB_PASSWORD: (removed)
ports:
# Make available to reverse proxy
- '8081:80'
volumes:
# Map wordpress content folder, but use Wordpress from the conatiner
- /var/www/wordpress/wp-content/:/var/www/html/wp-content/
# Apache2 configuration
- /docker/wordpress/conf/apache/mpm_prefork.conf:/etc/apache2/mods-available/mpm_prefork.conf
# PHP configuration
- /docker/wordpress/conf/php/php.ini-production:/usr/local/etc/php/php.ini
# Allow apache logs to be written to the host file system
- /var/log/apache2/:/var/log/apache2/
# Allow php logs to be written to the host file system
- /var/log/php/:/var/log/php/
# Allow uploads
- /docker/wordpress/conf/php/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
官方 docker 容器不会启动 cron,因此不会执行 cron 作业,因此不会安装任何更新。您基本上有两个选择: