如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本Docker容器本身不执行独立功能,而是作为辅助容器(Sidekick Container),用于从Git仓库拉取配置文件变更并通过rsync同步到实际业务容器中。最初为配合Logstash及其config.autorestart功能开发,后抽象为通用工具,支持各类需要动态更新配置的应用场景。
容器运行时通过环境变量进行配置,以下为详细参数说明:
| 变量名 | 是否必填 | 默认值 | 说明 |
|---|---|---|---|
| WORKING_DIR | 是 | - | 脚本执行的工作目录 |
| GIT_REPO_DIR | 否 | 仓库名称 | Git仓库的本地存放目录,若不指定则使用仓库名称作为目录名 |
| GIT_REPO_URL | 是 | - | 待克隆的Git仓库URL(支持SSH/HTTPS协议) |
| GIT_REPO_BRANCH | 否 | Master | 要检出的Git分支 |
| DEPLOY_PUB_KEY | 是 | - | Git仓库访问所需的公钥 |
| DEPLOY_PRI_KEY_LOCATION | 否 | /run/secrets | 私钥文件路径(默认从Rancher配置的secrets目录读取) |
| KNOWN_HOSTS | 是 | - | Git仓库服务器的主机身份标识(用于SSH连接时的主机验证) |
| COPY_SOME_FILES | 否 | - | 可选,指定需要复制的文件列表(逗号分隔) |
| COPY_SOME_FILES_DST | 否 | - | 当设置COPY_SOME_FILES时必填,指定文件复制的目标路径 |
| TEMPLATE_FILES | 否 | - | 可选,指定需要进行环境变量注入的配置文件列表(逗号分隔),需同时提供对应环境变量 |
基础运行命令
bashdocker run -d \ --name sidekick-ci \ -e WORKING_DIR="/app/config" \ -e GIT_REPO_URL="git@github.com:example/config-repo.git" \ -e GIT_REPO_BRANCH="main" \ -e DEPLOY_PUB_KEY="ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ..." \ -e KNOWN_HOSTS="github.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ..." \ -e TEMPLATE_FILES="logstash.conf,nginx.conf" \ -e LOG_LEVEL="info" \ -v /path/to/secret:/run/secrets \ # 挂载私钥文件目录 your-registry/sidekick-ci:latest
配合Logstash使用的docker-compose示例
yamlversion: '3' services: logstash: image: docker.elastic.co/logstash/logstash:8.11.3 volumes: - /app/logstash/config:/usr/share/logstash/config restart: always depends_on: - sidekick-ci sidekick-ci: image: your-registry/sidekick-ci:latest environment: - WORKING_DIR="/app" - GIT_REPO_URL="git@github.com:example/logstash-configs.git" - GIT_REPO_BRANCH="production" - DEPLOY_PUB_KEY="ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ..." - KNOWN_HOSTS="github.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ..." - COPY_SOME_FILES="pipelines.yml,logstash.yml" - COPY_SOME_FILES_DST="/usr/share/logstash/config" - TEMPLATE_FILES="logstash.conf" - ELASTICSEARCH_HOST="elasticsearch:9200" volumes: - /app/logstash/config:/usr/share/logstash/config # 同步配置到Logstash - /run/secrets/git-private-key:/run/secrets/id_rsa # 挂载私钥
当设置TEMPLATE_FILES参数时,容器会自动将指定文件中的环境变量占位符替换为实际值。例如,若配置文件logstash.conf包含:
input { beats { port => ${BEATS_PORT} } } output { elasticsearch { hosts => ["${ELASTICSEARCH_HOST}"] } }
则需在环境变量中提供BEATS_PORT和ELASTICSEARCH_HOST,容器会自动生成替换后的配置文件并同步到目标目录。
以下是 project42/logstash 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。



来自真实用户的反馈,见证轩辕镜像的优质服务