
# 制作Agent镜像
本文介绍如何手动制作符合AgentArts智能体运行时规范的Docker镜像，并将其上传至华为云容器镜像服务（SWR），用于后续通过控制台部署智能体运行时。
 #### 前提条件
- 参考[环境准备](https://support.huaweicloud.com/highcode-agentarts/agentarts_10_040.html#agentarts_10_040__section147911114188)做好环境准备工作。
- 参考[本地开发](https://support.huaweicloud.com/highcode-agentarts/agentarts_10_040.html#agentarts_10_040__section57810415205)完成Agent本地代码的编写。
 
#### 构建镜像
1. 已完成[前提条件]中的环境准备以及本地代码编写任务。
2. 在本地构建镜像。 
   在 Dockerfile 所在目录执行以下命令：
   ```
   docker build -t agentarts-custom:latest .
   ```
   ![](https://support.huaweicloud.com/highcode-agentarts/public_sys-resources/note_3.0-zh-cn.png)
   （可选）如果遇到拉取python:{version}-slim包失败，请修改docker镜像源。
   执行以下命令在系统配置目录下创建一个名为docker的文件夹。
   ```
   sudo mkdir -p /etc/docker
   ```
   执行以下命令（直接复制下面这段代码并回车执行），更换Docker镜像源，从国内镜像站寻找python:3.10-slim。
   ```
   sudo tee /etc/docker/daemon.json <<-'EOF'
   {
     "registry-mirrors":[
       "https://docker.m.daocloud.net",
       "https://dockerproxy.net",
       "https://mirror.baidubce.com"
     ]
   }
   EOF
   ```
   依次执行下面两条命令，重启Docker服务：
   ```
   sudo systemctl daemon-reload
   sudo systemctl restart docker
   ```
   
   
   

3. 本地运行验证。 
   ```
   docker run -d -p 8080:8080 \
     -e REGION=cn-southwest-2 \
     -e PROJECT_ID=your_project_id \    #鼠标移动至右上角用户名，在下拉列表中单击“我的凭证”，在“我的凭证”页面，在项目列表中查看项目ID。
     --name my-agent \
     agentarts-custom:latest
   ```
   
   

4. 测试健康检查。 
   ```
   curl http://localhost:8080/ping
   # 预期返回: {"status":"Healthy","time_of_last_update":1784185138}
   ```
   **注意**：如果健康检查失败，在 AgentArts 上部署时会被判定为启动失败，导致实例不断重启。
   
   
 
#### 上传镜像
将构建的镜像上传至容器镜像服务。
1. 登录容器镜像服务控制台，选择区域，要和AgentArts区域保持一致，否则无法选择到镜像。
2. 单击右上角"创建组织"，输入组织名称完成组织创建。请自定义组织名称，本示例使用"demo-886633"，下面的命令中涉及组织名称"demo-886633"也请替换为自定义的值。
3. 单击右上角"登录指令"，获取登录访问指令，本文选择复制"通用型登录指令"登录指令。 
   以root用户登录本地环境，输入复制的SWR临时登录指令。
   
   
4. 上传镜像至容器镜像服务镜像仓库。 
   1. 使用docker tag命令给上传镜像打标签。
      ```
      #region和domain信息请替换为实际值，组织名称demo-886633也请替换为自定义的值。
      sudo docker tag agentarts-custom:latest swr.{region-id}.{domain}/demo-886633/agentarts-custom:latest 
      #此处以华为云cn-southwest-2为例 
      sudo docker tag agentarts-custom:latest swr.cn-southwest-2.myhuaweicloud.com/demo-886633/agentarts-custom:latest
      ```
      
   
   2. 使用docker push命令上传镜像。
      ```
      #region和domain信息请替换为实际值，组织名称demo-886633也请替换为自定义的值。
      sudo docker push swr.{region-id}.{domain}/demo-886633/agentarts-custom:latest
      #此处以华为云cn-southwest-2为例 
      sudo docker push swr.cn-southwest-2.myhuaweicloud.com/demo-886633/agentarts-custom:latest
      ```
      
   
   
   
   
5. 完成镜像上传后，在容器镜像服务控制台的"我的镜像"页面可查看已上传的自定义镜像。
 
