
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
运行于 或 /
这是一个用于运行https://github.com/Urigo/graphql-mesh%E7%9A%84%E7%AE%80%E5%8D%95Docker%E9%95%9C%E5%83%8F%EF%BC%88%E6%84%9F%E8%B0%A2https://github.com/Urigo%E5%92%8CMesh%E7%A4%BE%E5%8C%BA%E5%BC%80%E5%8F%91%E7%9A%84%E4%BC%98%E7%A7%80%E5%B7%A5%E5%85%B7%EF%BC%81%EF%BC%89
您只需准备Docker环境或Kubernetes集群即可运行命令,无需了解Node.js。
kubectlhelm
sh# 在Docker上运行 docker run --name mesh -p 4000:4000 -it --volume ${PWD}/docker/work/.meshrc:/work/.meshrc.yaml --rm hiroyukiosaki/graphql-mesh:latest-all-alpine # 或使用docker-compose运行 cd docker && docker-compose up -d mesh-all-alpine # 或在Kubernetes上使用helm运行 helm repo add graphql-mesh https://onelittlenightmusic.github.io/graphql-mesh-docker/helm-chart helm repo up helm install my-graphql-mesh graphql-mesh/graphql-mesh
然后访问http://localhost:4000。
运行查询:
graphql{ cases { active countryRegion } }
数据源包括MySQL或PostgreSQL等数据库。
https://github.com/Urigo/graphql-mesh%E5%8F%AF%E5%B0%86%E8%BF%99%E4%BA%9B%E6%95%B0%E6%8D%AE%E6%BA%90%E8%BD%AC%E6%8D%A2%E4%B8%BAGraphQL API。
GraphQL Mesh Docker在Docker容器中运行GraphQL Mesh,您可以通过修改.meshrc.yaml并将其挂载到容器中来自定义设置(参见自定义)。
| 标签 | 描述 |
|---|---|
latest(Dockerfile) | 包含最小CLI和处理器(@graphql-mesh/openapi) |
latest-alpine(Dockerfile-alpine) | Alpine版本(更小体积),包含最小CLI和处理器(@graphql-mesh/openapi) |
latest-all(Dockerfile-all) | 包含所有处理器 |
latest-all-alpine(Dockerfile-all-alpine) | Alpine版本(更小体积),包含所有处理器 |
您可以根据环境选择步骤(Docker或Kubernetes)。
只需运行以下命令:
sh# 直接docker run(选择标签版本) docker run --name mesh -p 4000:4000 -it --rm hiroyukiosaki/graphql-mesh:latest docker run --name mesh -p 4000:4000 -it --rm hiroyukiosaki/graphql-mesh:latest-all
替代方案:
sh# 使用docker-compose docker-compose up -d mesh # 或运行vX.X.X-all版本 docker-compose up -d mesh-all
运行镜像后,您可以访问http://localhost:4000查看GraphQL Mesh服务界面。
有两种方法:
kubectlhelm您需要Kubernetes集群。如果没有,可以使用https://github.com/kubernetes-sigs/kind%E5%9C%A8Docker%E4%B8%8A%E5%88%9B%E5%BB%BA%EF%BC%9A
shkind create cluster --name graphql --config kind-config.yaml
2.1 使用kubectl
sh# 如果要更改镜像,请编辑k8s/pod.yaml kubectl apply -f k8s/basic # 或 kubectl apply -f k8s/jsonschema-covid19
Pod运行后,将Kubernetes服务端口转发到本地:
shkubectl port-forward svc/mesh-svc 4000:4000 &
然后访问http://localhost:4000。
2.2 使用helm
sh# 添加仓库 helm repo add graphql-mesh https://onelittlenightmusic.github.io/graphql-mesh-docker/helm-chart # 刷新仓库 helm repo up # 安装helm chart到Kubernetes helm install my-graphql-mesh graphql-mesh/graphql-mesh # 或使用参数文件安装 helm install my-graphql-mesh graphql-mesh/graphql-mesh -f <parameter-values.yaml>
参数
| 名称 | 描述 | 默认值 |
|---|---|---|
mountConfigMap.".meshrc.yaml" | 包含.meshrc.yaml文件的ConfigMap名称 | None |
mountConfigMap."example-query.graphql" | 包含example-query.graphql文件的ConfigMap名称 | None |
mountConfigMap."init.sh" | 包含init.sh文件的ConfigMap名称。如果存在,容器将在运行GraphQL Mesh前执行init.sh | None |
mount.".meshrc.yaml" | 内联的.meshrc.yaml文件 | None |
mount."example-query.graphql" | 内联的example-query.graphql文件 | None |
mount."init.sh" | 内联的init.sh文件。如果存在,容器将在运行GraphQL Mesh前执行init.sh | None |
replicaCount | 副本Pod数量 | 1 |
image.repository | 镜像仓库 | hiroyukiosaki/graphql-mesh |
image.tag | 镜像标签 | latest |
image.pullPolicy | 镜像拉取策略 | IfNotPresent |
imagePullSecrets | 密钥名称数组 | [] |
serviceAccount.create | 为GraphQL Mesh创建ServiceAccount | true |
serviceAccount.name | ServiceAccount名称 | "" |
serviceAccount.annotations | ServiceAccount的注解结构 | {} |
service.type | 服务类型 | ClusterIP |
service.port | 服务端口 | 80 |
service.annotations | 服务的注解结构 | {} |
ingress.enabled | 启用Ingress | false |
ingress.annotations | Ingress的注解结构 | {} |
ingress.hosts.host | Ingress的主机名 | graphql-mesh.127.0.0.1.xip.io |
ingress.hosts.path | Ingress的主机路径数组 | [] |
resources | 资源限制和请求(例如limits: { cpu: 100m, memory: 128Mi }) | {} |
详情请参考示例参数值文件。
有两种方式自定义GraphQL Mesh Docker:
.meshrc.yamlGraphQL Mesh基础用法(官方文档)
.meshrc.yaml,请遵循上述官方文档指南。.meshrc.yaml放在当前目录。在Docker上
docker目录。docker-compose.yaml文件,指向您的.meshrc.yaml并挂载到/work/.meshrc.yaml:yamlvolumes: - ./.meshrc.yaml:/work/.meshrc.yaml # <- 注释掉并指向您的.meshrc.yaml
docker-compose up -d mesh在Kubernetes(不使用Helm)
shkubectl create cm meshrc-cm --from-file .meshrc.yaml --dry-run -o yaml> k8s/basic/meshrc-cm.yaml
kubectl apply -f k8s/basic使用Helm
下载示例值文件并编辑以包含您的.meshrc.yaml:
yamlmount: .meshrc.yaml: |- sources: - name: Ghibli handler: openapi: source: https://ghibliapi.herokuapp.com/swagger.yaml
sh# 克隆示例并创建目录"covid-mesh" git clone https://github.com/jycouet/covid-mesh # 将该目录挂载到容器并运行 docker run --name mesh -p 4000:4000 -v `pwd`/covid-mesh:/work -it --rm hiroyukiosaki/graphql-mesh:v0.1.17 /bin/bash -c 'yarn install && yarn start'
以下使用https://github.com/Urigo/graphql-mesh/tree/master/examples/mysql-employees%E7%A4%BA%E4%BE%8B%E3%80%82%E6%9B%B4%E7%AE%80%E5%8D%95%E7%9A%84docker-compose%E8%AE%BE%E7%BD%AE%E8%A7%81https://github.com/onelittlenightmusic/graphql-mesh-docker-mysql-example%E3%80%82
shgit clone https://github.com/datacharmer/test_db.git # 运行MySQL并恢复员工数据库 docker run --name mysql -v `pwd`/test_db/:/test_db -e MYSQL_ROOT_PASSWORD=passwd -d -p 3306:3306 mysql --default-authentication-plugin=mysql_native_password docker exec -it mysql /bin/bash $ cd /test_db $ mysql < employees.sql -p # 输入"passwd" # 克隆示例 git clone https://github.com/Urigo/graphql-mesh.git # 将该目录挂载到容器并运行 docker run --name mesh -v `pwd`/graphql-mesh/examples/mysql-employees:/work -p 4000:4000 -d hiroyukiosaki/graphql-mesh:v0.1.17 /bin/bash -c 'sleep 3600' # 编辑.meshrc.yaml # 指向主机地址(例如Mac上的host.docker.internal) # host: host.docker.internal docker exec -it mesh /bin/bash $ yarn install $ yarn start
访问http://localhost:4000
修改Dockerfile并使用docker-compose命令构建:
shdocker-compose build
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。


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