
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
基于官方WordPress镜像的自定义Docker镜像,增强功能包括:
构建脚本使用Docker Buildx创建多平台镜像,支持Intel/AMD(x86_64)和ARM(Apple Silicon M1/M2/M3、ARM服务器)架构。
wordpress:php{VERSION}-apache镜像/usr/src/wordpress/wp-includes/version.php自动检测WordPress版本确保自定义镜像始终与官方镜像的WordPress版本保持一致。
注意:不同PHP版本可能对应不同的WordPress版本。例如:
确保Docker Buildx可用(Docker Desktop和最新Docker Engine版本已包含):
bashdocker buildx version
每个构建为每个PHP版本创建8个标签,遵循官方WordPress镜像命名规范。
WordPress版本从基础镜像wordpress:php{VERSION}-apache自动检测。
例如,构建PHP 8.3(使用wordpress:php8.3-apache作为基础镜像)会自动检测WordPress版本并创建:
6.8.3-php8.3-apache(完整版本带Apache)6.8-php8.3-apache(次要版本带Apache)6-php8.3-apache(主要版本带Apache)php8.3-apache(仅PHP版本带Apache)6.8.3-php8.3(完整版本)6.8-php8.3(次要版本)6-php8.3(主要版本)php8.3(仅PHP版本)bash# 使用默认设置构建(PHP 8.3,WordPress自动检测) ./build.sh 8.3 # 使用自定义镜像名称构建 ./build.sh 8.3 myrepo/wordpress # 构建并推送到Docker Hub或 registry ./build.sh 8.3 myrepo/wordpress --push # 构建并本地加载(仅单平台) ./build.sh 8.3 myrepo/wordpress --load
bash# 构建所有PHP版本(每个版本自动检测WordPress版本) ./build.sh all myrepo/wordpress # 构建所有版本并推送到 registry ./build.sh all myrepo/wordpress --push
这将为每个PHP版本(7.4、8.3、8.4)创建8个标签。每个镜像支持linux/amd64和linux/arm64平台。
| 选项 | 描述 |
|---|---|
--push | 构建并推送到Docker registry(多平台构建必需) |
--load | 构建并加载到本地Docker(仅单平台,使用当前架构) |
| (无) | 仅构建,存储在buildx缓存中,不加载到本地Docker镜像 |
注意:多平台镜像无法直接加载到Docker。使用--push推送到registry,或--load进行本地测试(单平台)。
bash# 构建单个版本 make build make build PHP_VERSION=8.3 make build IMAGE_NAME=myrepo/wordpress # 构建并推送 make push IMAGE_NAME=myrepo/wordpress make push-all IMAGE_NAME=myrepo/wordpress # 构建并本地加载 make load PHP_VERSION=8.4 # 查看所有选项 make help
| 变量 | 描述 | 是否必需 | 示例 |
|---|---|---|---|
MAIL_FROM_DOMAIN | 系统和Postfix的邮件域名 | 是 | yourdomain.com |
POSTFIX_RELAYHOST | SMTP中继主机和端口 | 是 | [smtp.gmail.com]:587 |
POSTFIX_SMTP_USERNAME | 用于认证的SMTP用户名 | 否 | user@example.com |
POSTFIX_SMTP_PASSWORD | 用于认证的SMTP密码 | 否 | your-password |
| 变量 | 描述 | 是否必需 | 示例 |
|---|---|---|---|
DKIM_SELECTOR | DKIM选择器名称 | 否(设置后启用DKIM) | wordpress 或 default |
注意:设置DKIM_SELECTOR后,DKIM签名自动启用。如果密钥不存在,将在首次启动时生成,并在日志中显示DNS记录。
支持所有标准WordPress环境变量。参见https://hub.docker.com/_/wordpress%E3%80%82
启用DKIM的首次启动时,将自动生成密钥。DNS记录将显示在日志中:
bashdocker logs wordpress # 输出将包含: # ========================================== # DKIM DNS记录 # ========================================== # 添加此TXT记录到您的DNS: # # wordpress._domainkey IN TXT ( "v=DKIM1; h=sha256; k=rsa; " # "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA..." ) # # ==========================================
复制DNS记录并添加到域名的DNS设置中。
要跨容器重启持久化DKIM密钥,挂载卷:
bashdocker run -d \ -v dkim_keys:/etc/opendkim/keys \ -e MAIL_FROM_DOMAIN=yourdomain.com \ -e DKIM_SELECTOR=wordpress \ docker.xuanyuan.run/myrepo/wordpress:php8.3-apache
bashdocker run -d \ --name wordpress \ -p 8080:80 \ -v dkim_keys:/etc/opendkim/keys \ -e MAIL_FROM_DOMAIN='yourdomain.com' \ -e POSTFIX_RELAYHOST='[smtp.gmail.com]:587' \ -e POSTFIX_SMTP_USERNAME='your-email@gmail.com' \ -e POSTFIX_SMTP_PASSWORD='your-app-password' \ -e DKIM_SELECTOR='wordpress' \ -e WORDPRESS_DB_HOST=mysql:3306 \ -e WORDPRESS_DB_USER=wordpress \ -e WORDPRESS_DB_PASSWORD=wordpress \ -e WORDPRESS_DB_NAME=wordpress \ docker.xuanyuan.run/myrepo/wordpress:6.8.3-php8.3-apache # 可用标签: # myrepo/wordpress:6.8-php8.3-apache # myrepo/wordpress:6-php8.3-apache # myrepo/wordpress:php8.3-apache # myrepo/wordpress:6.8.3-php8.3 # myrepo/wordpress:php8.3
yamlservices: wordpress: image: docker.xuanyuan.run/myrepo/wordpress:6.8.3-php8.3-apache # 或使用其他标签:6.8-php8.3-apache, 6-php8.3-apache, php8.3-apache等 ports: - "8080:80" environment: # WordPress数据库配置 WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress_db_password WORDPRESS_DB_NAME: wordpress # 邮件配置 MAIL_FROM_DOMAIN: 'yourdomain.com' # DKIM配置(可选) DKIM_SELECTOR: 'wordpress' # Postfix中继配置 POSTFIX_RELAYHOST: '[smtp.gmail.com]:587' POSTFIX_SMTP_USERNAME: 'your-email@gmail.com' POSTFIX_SMTP_PASSWORD: 'your-app-password' volumes: - wordpress_data:/var/www/html - dkim_keys:/etc/opendkim/keys depends_on: - db db: image: docker.xuanyuan.run/mysql:8.0 environment: MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress_db_password MYSQL_ROOT_PASSWORD: mysql_root_password volumes: - db_data:/var/lib/mysql volumes: wordpress_data: dkim_keys: db_data:
bashPOSTFIX_RELAYHOST='[smtp.gmail.com]:587' POSTFIX_SMTP_USERNAME='your-email@gmail.com' POSTFIX_SMTP_PASSWORD='your-app-password'
注意:Gmail需使用https://support.google.com/accounts/answer/***%E3%80%82
bashPOSTFIX_RELAYHOST='[smtp.sendgrid.net]:587' POSTFIX_SMTP_USERNAME='apikey' POSTFIX_SMTP_PASSWORD='your-sendgrid-api-key'
bashPOSTFIX_RELAYHOST='[email-smtp.us-east-1.amazonaws.com]:587' POSTFIX_SMTP_USERNAME='your-smtp-username' POSTFIX_SMTP_PASSWORD='your-smtp-password'
bashPOSTFIX_RELAYHOST='[smtp.mailgun.org]:587' POSTFIX_SMTP_USERNAME='postmaster@your-domain.mailgun.org' POSTFIX_SMTP_PASSWORD='your-mailgun-smtp-password'
bash# 查看所有日志(Apache + Postfix) docker logs wordpress # 实时跟踪日志 docker logs -f wordpress # 查看最后100行 docker logs --tail 100 wordpress # 仅过滤Postfix日志 docker logs wordpress 2>&1 | grep postfix
PHP已配置为使用Postfix的mail()函数。
bash# 进入容器 docker exec -it wordpress bash # 通过命令行发送测试邮件 echo "测试邮件正文" | mail -s "测试主题" recipient@example.com # 测试PHP邮件函数 php -r "mail('recipient@example.com', '测试主题', '来自PHP的测试消息');" # 退出并从容器外查看日志 exit docker logs -f wordpress # 会看到Postfix处理邮件的日志
WordPress将自动使用PHP的mail()函数,该函数现在通过Postfix路由:
bashdocker logs -f wordpress | grep postfix
本项目遵循与官方WordPress Docker镜像相同的许可证。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 excaliburpartners/wordpress 相关的常用 Docker 镜像,适用于 不同场景 等不同场景: