
# 使用自定义构建环境
如果当前CodeArts Build支持的工具版本不满足您的使用要求，您可以使用已上传到SWR的自定义镜像进行构建。
 #### 将镜像设置为"公开"
由于CodeArts Build无法拉取您在SWR私有仓中的镜像，因此，需要先将镜像设置为"公开"。
1. 登录[容器镜像服务](https://console.huaweicloud.com/swr/)。
2. 在导航栏单击"我的镜像"，单击"镜像名称"进入镜像详情页面，然后单击右上角"编辑"。
3. 在弹框中，将"类型"设置为"公开"，单击"确定"。
   图1编辑镜像   
   ![](https://support.huaweicloud.com/usermanual-codeci/zh-cn_image_0000001998341785.png) 
4. 获取完整的镜像地址：单击![](https://support.huaweicloud.com/usermanual-codeci/zh-cn_image_0000001961741084.png)复制镜像下载指令，其中，docker pull后面部分为镜像地址。
   ![](https://support.huaweicloud.com/usermanual-codeci/zh-cn_image_0000001961812486.png)
   
 
- [图形化构建]
  在[配置构建步骤](https://support.huaweicloud.com/usermanual-codeci/codeci_ug_0059.html)中，添加"使用自定义构建环境"构建步骤，参考[表1]配置参数。
   表1使用自定义构建环境参数说明 
  | **参数**    | **说明**                                                                                                                                                                                                                                                                                                                                                                       |
  |:---|:---|
  | 步骤显示名称    | 构建步骤的名称，可自定义修改。 - 支持中文、英文、数字、"-"、"_"、英文逗号、英文分号、英文冒号、"."、"/"、圆括号（中英文）。  - 字符长度范围为1\~128。   |
  | 镜像地址      | 填写[将镜像设置为公开]中获取的镜像地址。                                                                                                                                                                                                                                                                                                                |
  | 命令        | 配置命令，一般使用系统默认生成的命令即可。如有特殊构建要求，可以在文本域中输入自定义的构建脚本。 例如：若使用的镜像是用于Maven构建，则配置Maven构建命令；若使用的镜像是用于NPM构建，则配置NPM构建命令，以此类推。                                                                                                                                                                                                                         |
  | 失败后是否继续运行 | 当前步骤执行失败后是否继续执行下一个步骤，根据实际使用场景选择是或否。                                                                                                                                                                                                                                                                                                                                          |
     
- [代码化构建]
  参考以下代码示例，修改在[创建代码化构建使用的YAML文件](https://support.huaweicloud.com/usermanual-codeci/codeci_ug_0058.html#codeci_ug_0058__section72391847131511)中的BUILD部分代码信息。
  ```
  version: 2.0 # 必须是2.0
  steps:
    BUILD:
      - swr:
         image: cloudbuild@ddd
         inputs:
            command: echo 'hello'
            ignore_fail: true
  ```
  表2使用SWR镜像代码示例参数说明 
  | **参数**      | **类型** | **说明**                                                                                                                                                                                                                                                                                                                                                                                     |
  |:---|:---|:---|
  | image       | string | 填写镜像地址，分为以下两种填写方式： - 以cloudbuild开始，@作为分隔符，后面是编译构建支持的工具版本对应的名称。例如：cloudbuild@maven3.5.3-jdk8-open，其中"maven3.5.3-jdk8-open"为Maven构建的工具版本名称。  - [将镜像设置为公开]中获取的镜像地址。   |
  | command     | string | 配置执行命令。 例如：若使用的镜像是用于Maven构建，则配置Maven构建命令；若使用的镜像是用于NPM构建，则配置NPM构建命令，以此类推。                                                                                                                                                                                                                                                                                  |
  | ignore_fail | string | 用于控制当前步骤执行失败后是否继续执行下一个步骤。 - true：是。  - 为空：否。                                                                                   |
     
#### 镜像常见问题
关于镜像的常见问题可参考[镜像常见问题](https://support.huaweicloud.com/codeci_faq/codeci_faq_0021.html)。
