
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
ecs-deploy是一个用Go编写的REST API服务器,用于从任何地方部署ECS服务,通常作为部署流水线的一部分。由于Jenkins、CircleCI、Bitbucket等持续集成(CI)软件往往缺乏与ECS的原生集成,该API服务器可部署在ECS上,提供ECS的持续部署能力,解决CI工具与ECS集成不足的问题。
适用于需要将CI/CD流水线与AWS ECS集成的场景,特别是当现有CI工具缺乏原生ECS部署能力时。可用于自动化部署流程、管理ECS服务生命周期(部署、回滚、扩缩容)、监控服务状态和日志,以及配置自动扩缩容策略,适用于开发、测试和生产环境的ECS集群管理。
可从https://github.com/in4it/ecs-deploy/releases%E4%B8%8B%E8%BD%BDecs-deploy%E5%92%8Cecs-client%EF%BC%8C%E6%88%96%E4%BD%BF%E7%94%A8https://hub.docker.com/r/in4it/ecs-deploy/%E3%80%82
使用ecs-deploy可以引导新的ECS集群,自动设置自动扩缩组、ALB、IAM角色和ECS集群:
bash./ecs-deploy --bootstrap \ --alb-security-groups sg-123456 \ # ALB安全组 --cloudwatch-logs-enabled \ # 启用CloudWatch日志 --cloudwatch-logs-prefix mycompany \ # CloudWatch日志前缀 --cluster-name mycluster \ # 集群名称 --ecs-desired-size 1 \ # ECS期望实例数 --ecs-max-size 1 \ # ECS最大实例数 --ecs-min-size 1 \ # ECS最小实例数 --ecs-security-groups sg-123456 \ # ECS安全组 --ecs-subnets subnet-123456 \ # ECS子网 --environment staging \ # 环境(如staging、prod) --instance-type t2.micro \ # 实例类型 --key-name mykey \ # SSH密钥名称 --loadbalancer-domain cluster.in4it.io \ # ALB域名 --paramstore-enabled \ # 启用参数存储 --paramstore-kms-arn aws:arn:kms:region:accountid:key/1234 \ # KMS ARN --paramstore-prefix mycompany \ # 参数存储前缀 --profile your-aws-profile \ # AWS凭证配置文件 --region your-aws-region # AWS区域(必填)
注意:需先创建安全组和VPC/子网。ALB安全组应允许80/443端口入站,ECS安全组应允许来自ALB的32768-61000端口流量。如需删除集群,将
--bootstrap替换为--delete-cluster。
也可通过Terraform部署ECS集群,详见https://github.com/in4it/ecs-deploy/blob/master/terraform/README.md%E3%80%82
使用ecs-client部署示例服务(如nginx和echoserver):
交互式登录
bash./ecs-client login --url http://yourdomain/ecs-cluster
使用环境变量登录
bashECS_DEPLOY_LOGIN=deploy ECS_DEPLOY_PASSWORD=password ./ecs-client login --url http://yourdomain/ecs-cluster
部署服务
bash./ecs-client deploy -f examples/services/multiple-services/multiple-services.yaml
AWS_REGION=region:AWS区域(必填)JWT_SECRET=secret:JWT加密密钥(必填)DEPLOY_PASSWORD=deploy:部署用户密码(必填)DEVELOPER_PASSWORD=developer:开发用户密码(必填)AWS_ACCOUNT_ENV=dev|staging|testing|qa|prod:AWS账户环境标识PARAMSTORE_ENABLED=yes:是否启用参数存储(默认:no)PARAMSTORE_PREFIX=mycompany:参数存储前缀(如设为mycompany,参数路径为/mycompany/服务名/变量)PARAMSTORE_KMS_ARN=:用于加密/解密参数的KMS ARNCLOUDWATCH_LOGS_ENABLED=yes:是否启用CloudWatch日志(默认:no)CLOUDWATCH_LOGS_PREFIX=mycompany:CloudWatch日志前缀LOADBALANCER_DOMAIN=mycompany.com:负载均衡器域名DYNAMODB_TABLE=Services:存储服务信息的DynamoDB表名(默认:Services)ECR_SCAN_ON_PUSH=true:是否启用ECR镜像推送时扫描(默认:false)SAML_ENABLED=yes:启用SAML认证(默认:no)SAML_ACS_URL=https://mycompany.com/url-prefix:SAML断言消费者服务URLSAML_CERTIFICATE=证书内容:SAML证书内容SAML_PRIVATE_KEY=私钥内容:SAML私钥内容SAML_METADATA_URL=https://identity-provider/metadata.xml:身份提供商元数据URL生成SAML密钥和证书的命令:
bashopenssl req -x509 -newkey rsa:2048 -keyout myservice.key -out myservice.cert -days 3650 -nodes -subj "/CN=myservice.mycompany.com"
通过以下步骤启用自动扩缩容:
https://your-domain.com/ecs-deploy/webhook)| 环境变量 | 默认值 | 描述 |
|---|---|---|
| PARAMSTORE_ENABLED | no | 是否启用参数存储(使用"yes"启用) |
| PARAMSTORE_PREFIX | "" | 参数存储前缀(如设为mycompany,参数路径为/mycompany/服务名/变量) |
| PARAMSTORE_KMS_ARN | "" | 用于加密/解密参数的KMS ARN |
| PARAMSTORE_INJECT | no | 是否将密钥注入任务定义(使用"Yes"启用) |
| AUTOSCALING_STRATEGIES | LargestContainerUp,LargestContainerDown | 应用的自动扩缩容策略列表(见下方策略类型) |
| AUTOSCALING_DOWN_STRATEGY | gracefully | 缩容策略(目前仅支持gracefully:在执行缩容前检查资源使用情况) |
| AUTOSCALING_UP_STRATEGY | immediately | 扩容策略(immediately:立即扩容;gracefully:检查后扩容) |
| AUTOSCALING_DOWN_COOLDOWN | 5 | 缩容后冷却时间(分钟) |
| AUTOSCALING_DOWN_INTERVAL | 60 | 缩容检测后,检查资源使用情况的时间间隔(秒) |
| AUTOSCALING_DOWN_PERIOD | 5 | 缩容前检查资源使用情况的周期数 |
| AUTOSCALING_UP_COOLDOWN | 5 | 扩容后冷却时间(分钟) |
| AUTOSCALING_UP_INTERVAL | 60 | 扩容检测后,检查资源使用情况的时间间隔(秒) |
| AUTOSCALING_UP_PERIOD | 5 | 扩容前检查资源使用情况的周期数 |
| SERVICE_DISCOVERY_TTL | 60 | 服务发现记录的TTL(秒) |
| SERVICE_DISCOVERY_FAILURETHRESHOLD | 3 | 服务发现记录的故障阈值 |
| AWS_RESOURCE_CREATION_ENABLED | yes | 是否允许ecs-deploy自动创建AWS IAM资源 |
| SLACK_WEBHOOKS | "" | 逗号分隔的Slack Webhook(可选指定频道,格式:url1:#channel,url2:#channel) |
| SLACK_USERNAME | ecs-deploy | Slack通知用户名 |
| ECS_TASK_ROLE_PERMISSION_BOUNDARY_ARN | "" | ECS任务角色的权限边界ARN |
| ECR_SCAN_ON_PUSH | false | 是否启用ECR镜像推送时扫描 |
| DEPLOY_MAX_WAIT_SECONDS | 900 | 部署超时等待时间(秒,默认15分钟) |
| 策略名称 | 描述 |
|---|---|
| LargestContainerUp | 当集群中最大容器(含缓冲)无法在现有节点上调度时触发扩容 |
| LargestContainerDown | 当移除一个节点后仍有足够容量容纳最大容器(含缓冲)时触发缩容 |
| Polling | 每分钟轮询所有服务,检查是否因资源不足导致任务无法调度(每秒最多1次调用,每次10个服务) |
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。





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