
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这段话即可:
请先阅读并遵守:https://xuanyuan.cloud/agents.md
未读文档前不要生成 pull 命令或排错方案。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
此Action是https://github.com/rtCamp/创建的https://github.com/rtCamp/github-actions-library/的一部分,是一个基于https://deployer.org/通过GitHub Action将WordPress部署到服务器的工具。
请注意,此Action要求Git仓库结构符合特定规范:网站根目录应包含wp-content内的内容(uploads除外)。您可以使用https://github.com/rtCamp/wordpress-skeleton作为基础,或调整现有项目结构以适配。
部署过程中,默认情况下此Action会下载https://wordpress.org/latest.zip,将仓库内容放入`wp-content`目录,然后将整个WordPress设置部署到`hosts.yml`中指定的部署路径。`hosts.yml`是https://deployer.org/docs/hosts.html#inventory-file。
deploy.php覆盖默认部署行为适用于需要通过GitHub Actions自动化部署WordPress站点的场景,支持:
在GitHub仓库中创建.github/workflows/deploy.yml文件(若不存在)。
向deploy.yml文件添加以下代码:
ymlon: push name: 部署WordPress站点 jobs: deploy: name: 部署 runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: 部署 uses: rtCamp/action-deploy-wordpress@v2 env: SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
使用https://developer.github.com/actions/creating-workflows/storing-secrets创建`SSH_PRIVATE_KEY`密钥,存储用于SSH连接`hosts.yml`中定义的服务器的私钥。
基于https://deployer.org/docs/hosts.html#inventory-file格式创建`.github/hosts.yml` inventory文件。确保显式定义GitHub分支映射,只有hosts.yml中映射的分支会被部署,其余分支将被过滤。示例可参考https://github.com/rtCamp/wordpress-skeleton/blob/main/.github/hosts.yml。
可通过以下环境变量自定义此GitHub Action的行为:
| 变量名 | 默认值 | 可能值 | 用途 |
|---|---|---|---|
MU_PLUGINS_URL | null | vip, 任意git仓库URL | 若值为vip,则克隆https://github.com/Automattic/vip-mu-plugins-public作为`mu-plugins`文件夹;若提供公开的MU插件仓库URL,则克隆该仓库 |
WP_VERSION | latest | 任何有效的WordPress版本 | 指定要下载的WordPress版本,而非最新版。hosts.yml中定义的WP_VERSION优先级高于工作流文件中的定义 |
WP_MINOR_UPDATE | null | true / false | 若设为true,则使用WP_VERSION的最新minor版本 |
JUMPHOST_SERVER | null | 跳转服务器的主机名/IP地址 | 若部署服务器无法直接访问,需通过跳转服务器时使用。(注意:SSH_PRIVATE_KEY需同时有权限访问跳转服务器和部署服务器,且此方法不支持vault) |
SUBMODULE_DEPLOY_KEY | null | 子模块仓库的只读部署密钥 | 仅私有子模块仓库需要。所有公共子模块会默认获取,无需此变量。(创建部署密钥:设置 > Deploy Keys > 添加部署密钥) |
Deployer.org要求服务器按特定方式配置。
使用EasyEngine v4
新站点
--public-dir=current。rm -r /opt/easyengine/sites/example.com/app/htdocs/current删除current文件夹。current文件夹将在Deployer执行期间自动创建。
现有站点
/opt/easyengine/sites/example.com/config/nginx/conf.d/main.conf。/var/www/htdocs替换为/var/www/htdocs/current。ee site reload example.com。wp-config.php移动到htdocs,可使用以下命令:bashmv /opt/easyengine/sites/example.com/app/wp-config.php /opt/easyengine/sites/example.com/app/htdocs/wp-config.php
不使用EasyEngine
current子目录,且current子目录实际不存在。wp-config.php的位置。此GitHub Action支持https://www.vaultproject.io/,便于管理多服务器时避免为每个项目单独配置`SSH_PRIVATE_KEY`作为GitHub密钥。
要启用Hashicorp Vault支持,需定义以下GitHub密钥:
| 变量名 | 用途 | 示例值 |
|---|---|---|
VAULT_ADDR | https://www.vaultproject.io/docs/commands/#vault_addr | https://example.com:8200 |
VAULT_TOKEN | https://www.vaultproject.io/docs/concepts/tokens.html | s.gIX5MKov9TUp7iiIqhrP1HgN |
需将deploy.yml文件中的secrets行修改为:
ymlon: push name: 使用vault部署WordPress站点 jobs: deploy: name: 部署 runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: 部署 uses: rtCamp/action-deploy-wordpress@v2 env: VAULT_ADDR: ${{ secrets.VAULT_ADDR }} VAULT_TOKEN: ${{ secrets.VAULT_TOKEN }}
GitHub Action使用VAULT_TOKEN连接VAULT_ADDR以获取https://www.vaultproject.io/docs/secrets/ssh/signed-ssh-certificates.html#signing-key-amp-role-configuration并用于部署。
需预先配置每个目标部署服务器接受通过Vault签名的SSH证书连接,通常需在每台服务器上运行以下命令一次:
bashexport VAULT_ADDR='https://example.com:8200' export VAULT_TOKEN='s.gIX5MKov9TUp7iiIqhrP1HgN' # 将公钥添加到所有目标主机的SSH配置 curl -o /etc/ssh/trusted-user-ca-keys.pem "$VAULT_ADDR/v1/ssh-client-signer/public_key" # 将公钥内容存储路径添加到SSH配置文件作为TrustedUserCAKeys选项 echo "TrustedUserCAKeys /etc/ssh/trusted-user-ca-keys.pem" >> /etc/ssh/sshd_config # 重启SSH服务(可能因操作系统而异) systemctl restart ssh
在Git仓库中创建.github/deploy/deploy.php文件,可提供自定义的https://deployer.org/脚本。
请注意,这将完全覆盖此Action的https://github.com/rtCamp/action-deploy-wordpress/blob/master/deploy.php。若需要保留原始`deploy.php`的部分内容,需将其复制到自定义的`.github/deploy/deploy.php`中。
MIT © 2021 rtCamp
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务