
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
dist script wrappers Docker镜像是一个用于安装和管理包装脚本的工具镜像,旨在简化项目的构建、测试、代码检查和部署流程。通过该镜像可以快速同步包装脚本到项目中,并提供灵活的配置选项,支持Gitlab项目集成、服务端口设置、镜像构建参数配置等,适用于需要标准化开发流程的团队和项目。
通过以下命令安装包装脚本:
bashdocker run -it --rm -v $PWD:/app brainbitsgmbh/dist:latest /dist/sync
安装成功后,可以使用bin/wrapper/dist-sync脚本替代直接的Docker调用。
必需配置值
Gitlab project path:Gitlab项目路径,例如 docker/distExposed port:暴露端口,仅在使用服务器脚本时需要Container port:内部容器端口,仅在使用服务器脚本时需要Devtools image:要使用的开发工具镜像,必要时替换为project-devtoolsApp image:要构建的应用镜像Checks:由bin/all-checks运行的检查脚本Warning Checks:失败时仅产生警告的检查脚本以下本地包含脚本可用于扩展默认功能:
bin/local/include-all-checks:包含在bin/all-checks脚本中bin/local/include-build:包含在bin/image/build脚本中bin/local/include-build-post:包含在bin/image/build脚本的末尾bin/local/include-composer:包含在bin/composer脚本中bin/local/include-config:包含在配置中,参见本地配置bin/local/include-server:包含在所有启动/运行服务器的服务器脚本中bin/local/include-server-run:包含在所有运行服务器的服务器脚本中bin/local/include-server-run-blackfire:包含在所有使用blackfire运行服务器的脚本中bin/local/include-server-run-debug:包含在所有以调试模式运行服务器的脚本中bin/local/include-server-run-prod:包含在所有以生产模式运行服务器的脚本中bin/local/include-server-start:包含在所有启动服务器的脚本中bin/local/include-server-stop:包含在所有停止服务器的脚本中可以为每个包含脚本创建用户特定的覆盖脚本。用户特定包含脚本的文件名必须以-user为后缀,例如bin/local/include-config-user。
将用户特定的包含脚本添加到.gitignore文件中:
/bin/local/include-*-user
Composer认证
包装脚本支持Composer仓库认证,可通过环境变量或本地composer auth.json文件实现:
COMPOSER_AUTH_ENABLED=1:启用Composer认证COMPOSER_AUTH_REPO=<host>:Composer仓库凭证的主机名COMPOSER_AUTH_USER=<username>:Composer仓库凭证的用户名COMPOSER_AUTH_PASSWORD=<password>:Composer仓库凭证的密码启用认证后,如果设置了COMPOSER_AUTH_REPO、COMPOSER_AUTH_USER和COMPOSER_AUTH_PASSWORD这三个环境变量,将使用它们生成JSON格式凭证的COMPOSER_AUTH环境变量。或者,如果未设置这些变量,则使用$HOME/.composer/auth.json中的本地composer auth.json文件。如果未找到auth.json文件,将引发错误。
当启用认证并使用auth.json文件构建时,会提供ID为composer-auth-json的挂载密钥,可将其挂载到构建容器的/composer/auth.json。有关更多信息,请参见Docker构建密钥文档。
工具选型
在bin/local/include-config中可以配置用于检查和生成的工具:
APIDOC=[phpdocumentor|sami] (default=phpdocumentor):选择API文档生成工具CODE_STYLE=[phpcs|phpcs-baseline] (default=phpcs):选择代码风格检查工具SECURITY=[local-php-security-checker|symfony] (default=phpstan):选择安全检查工具STATIC_ANALYSIS=[phpstan|psalm] (default=phpstan):选择静态分析工具TESTS_COVERAGE=[xdebug|phpdbg|pcov] (default=pcov):选择测试覆盖率工具KARATE_TEST_DIR= (default=/app/e2e):设置包含karate-dsl测试用例的目录+server:安装服务器脚本+symfony:安装Symfony相关脚本+composer:安装Composer相关脚本+licenses:安装许可证相关脚本+end-to-end:安装端到端测试脚本+acceptance:安装验收测试脚本+renovate:安装renovate脚本+scan-image:安装镜像扫描脚本bin/wrapper/dist-bot
GITLAB_TOKEN=<token>:有效的Gitlab API令牌bin/wrapper/klar
KLAR_USER=<username>:允许访问Docker registry的用户名KLAR_PASSWORD=<password>:允许访问Docker registry的密码bin/wrapper/renovate
GITLAB_TOKEN=<token>:有效的Gitlab API令牌bin/check/code-style
CODE_STYLE_REPORT_FILE=<file>:Gitlab兼容的代码质量报告文件,例如CODE_STYLE_REPORT_FILE=build/codequality-phpcs.jsonbin/check/scan-source
TSFINDER_DIRS=<dir1> ... <dirN>:仅扫描指定目录,例如TSFINDER_DIRS="src tests vendor"TSFINDER_EXCLUDES_FILE=<file>:包含每行一个排除路径的文本文件,例如TSFINDER_EXCLUDES_FILE=.tsfinder-excludesbin/check/static-analysis
STATIC_ANALYSIS_REPORT_FILE=<file>:Gitlab兼容的代码质量报告文件,例如STATIC_ANALYSIS_REPORT_FILE=build/codequality-phpstan.jsonbin/check/tests
TESTS_REPORT_FILE=<file>:Gitlab兼容的JUnit报告文件,例如TESTS_REPORT_FILE=build/junit-phpunit.xmlbin/check/tests-coverage
TESTS_REPORT_FILE=<file>:Gitlab兼容的JUnit报告文件,例如TESTS_REPORT_FILE=build/junit-phpunit.xmlTESTS_COVERAGE_DIR=<dir>:HTML代码覆盖率报告目录,例如TESTS_COVERAGE_DIR=build/coverage调用/dist/sync会显示bin/中的未管理文件列表,即所有未通过dist安装的文件。要隐藏已知文件的输出,创建bin/.dist-ignore文件,每行输入一个相对于bin/的glob模式。每个glob模式将被展开并从非管理文件列表中移除。
示例:
# bin/.dist-ignore console image/*-fpm image/*-nginx ops stack
这将排除以下示例文件:
bin/consolebin/image/build-nginxbin/image/test-fpmbin/image/test-nginxbin/stack/startbin/stack/stopbin/stack/run/importbin/ops/production/deploybin/ops/staging/status您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务