制作镜像并推送到SWR仓库
将构建产物上传至SWR仓库。
另外,如果已有工具不能满足用户的使用要求,如缺少必要的依赖包、工具等,也可以根据实际需要,通过自定义Dockerfile文件的方式制作镜像并推送至指定的SWR仓库后使用,使用自定义镜像的操作指导可参考使用SWR公共镜像。
操作视频
本视频介绍基于自定义Maven镜像并推送至SWR的操作。
推送至SWR前准备工作
- 已在容器镜像服务创建组织。组织的约束与限制参考容器镜像服务的约束与限制。
- 如果您制作后的镜像需要推送至华为云其他用户的SWR中,需执行以下操作。
- 通过项目入口方式访问CodeArts Build服务首页。
- 在导航栏选择 。
- 在“新建服务扩展点”下拉框中选择“IAM账户”,在弹出的窗口中填写以下信息,单击“确定”。
- 如果您制作后的镜像需要推送至其他镜像仓库,需执行以下操作。
- 通过项目入口方式访问CodeArts Build服务首页。
- 在导航栏选择 。
- 在“新建服务扩展点”下拉框中选择“Docker repository”,在弹出的窗口中填写以下信息,单击“确定”。
- 连接名称:服务扩展点的名称,可自定义。支持中文、英文、数字、“-”、“_”、“.”、空格,不超过256个字符。
- 仓库地址:需要推送的镜像仓地址。
- 用户名:登录仓库的用户名。
- 密码:登录仓库的用户名密码。
图形化构建
在配置构建步骤中,“Maven构建”步骤后添加“制作镜像并推送到SWR仓库”构建步骤。
“Maven构建”构建步骤参数保持默认即可,如当前参数配置不满足使用要求,可参考Maven构建修改参数配置。“制作镜像并推送到SWR仓库”构建步骤参数配置说明如表1。
参数 |
说明 |
---|---|
步骤显示名称 |
构建步骤的名称,可自定义修改。
|
工具版本 |
选择使用的Docker版本,使用默认版本即可。 当前编译构建服务支持Docker18.03和Docker20.10版本。 |
镜像仓库 |
选择需要推送的镜像仓库。支持推送至华为云镜像仓库SWR和其他镜像仓库,根据实际情况选择即可。 |
授权用户 |
推送的镜像仓库的所属用户。支持推送至当前用户和其他用户。 需确保用户对组织内所有镜像具有编辑或管理权限,详见授权管理。 |
IAM账号 |
在下拉框中选择推送至SWR前准备工作中创建的“IAM账户”服务扩展点,通过服务扩展点推送至其他用户的SWR中。 当“授权用户”选择“其他用户”时需要配置该参数。 |
推送区域 |
选择需要推送的区域。镜像制作成功后,会将镜像依次推送到选中区域的SWR仓库。 |
镜像仓接入点 |
选择推送至SWR前准备工作中创建的“Docker repository”服务扩展点,通过服务扩展点推送至其他镜像仓库。 |
组织 |
在下拉框中选择推送至SWR前准备工作中创建好的组织名,选择镜像推送到SWR后所属的组织。 |
镜像名字 |
自定义填写制作完成后的镜像名称。 需以数字或字母开头,仅支持小写字母、数字、“_”、“-”,字符长度为1~255。 |
镜像标签 |
用来标记镜像的版本,可自定义。通过“镜像名:标签”可以唯一指定镜像。 仅支持大小写字母、数字、“.”、“_”、“-”,不可以“.”或“-”开头,字符长度为1~128。 |
工作目录 |
docker build的工作目录。填写docker build命令中的“上下文路径”参数,该路径是代码仓库根目录的相对路径。 上下文路径,指的是docker在构建镜像时,docker build命令将该路径下的所有内容打包给容器引擎,帮助构建镜像。 |
Dockerfile路径 |
Dockerfile文件所在路径,请填写相对于工作目录的路径,如:工作目录为根目录, 且Dockerfile文件在根目录下,则此处填写为“./Dockerfile”。 |
添加构建元数据到镜像 |
配置是否将本次构建信息添加到镜像中,镜像制作完成后可以通过docker inspect命令查看镜像元数据。 |
失败后是否继续运行 |
当前步骤执行失败后是否继续执行下一个步骤,根据实际使用场景选择是或否。 |
代码化构建
参考以下代码示例,修改在创建代码化构建使用的YAML文件中的BUILD部分代码信息。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
version: 2.0 # 必须是2.0 steps: BUILD: - build_image: name: buildImage inputs: regions: ["x-x-x", "x-x-xxx"] organization: codeci_test image_name: demo image_tag: ${GIT_COMMIT} dockerfile_path: dockerfile/Dockerfile build_args: - name: aaa value: iuhascihsd # set_meta_data: true ignore_fail: true |
参数 |
类型 |
说明 |
---|---|---|
regions |
list |
可选参数。 选择要上传的区域SWR。默认上传到当前任务所在region的SWR。如果配置多个region,镜像制作成功后,会将镜像依次推送到填写region的SWR仓库中。 |
organization |
string |
配置镜像推送到SWR后所属的组织名称。组织名称为推送至SWR前准备工作中创建好的组织名。 |
image_name |
string |
可选参数。 自定义填写制作完成后的镜像名称。 需以数字或字母开头,仅支持小写字母、数字、“_”、“-”,字符长度为1~255。 默认值:demo。 |
image_tag |
string |
可选参数。 用来标记镜像的版本,可自定义。通过“镜像名:标签”可以唯一指定镜像。 仅支持大小写字母、数字、“.”、“_”、“-”,不可以“.”或“-”开头,字符长度为1~128。 默认值:v1.1。 |
context_path |
string |
可选参数。 docker build的工作目录。填写docker build命令中的“上下文路径”参数,该路径是代码仓库根目录的相对路径。 上下文路径,指的是docker在构建镜像时,docker build命令将该路径下的所有内容打包给容器引擎,帮助构建镜像。 默认值:“.”。 |
dockerfile_path |
string |
可选参数。 Dockerfile文件所在路径,请填写相对于工作目录的路径,如:工作目录为根目录, 且Dockerfile文件在根目录下,则此处填写为“./Dockerfile”。 默认值:./Dockerfile。 |
build_args |
string |
可选参数。如果用户在docker命令中,需要使用build-arg参数,可配置此参数。 |
set_meta_data |
bool |
可选参数。 配置是否将本次构建信息添加到镜像中,镜像制作完成后可以通过docker inspect命令查看镜像元数据。
默认值:false。 |
ignore_fail |
string |
用于控制当前步骤执行失败后是否继续执行下一个步骤。
|