概述
[自定义]步骤允许用户在流水线中使用自定义镜像创建容器实例,利用容器完成相关的工作
配置参数
基本参数
参数 | 概述 |
---|---|
镜像 | 在流水线执行[自定义]步骤时将创建[镜像]的容器实例,可手工填写或点击[选择]按钮选择在云平台”上传”或”编译”的镜像 |
镜像仓库 | [镜像]的所属的镜像仓库,若拉取[镜像]无需权限认证则无需配置 |
添加文件 | 可将外部文件挂载到[镜像]的容器实例的/data/common/file目录下 |
执行脚本 | 在[镜像]的容器实例中执行的脚本 |
镜像默认挂载目录
[镜像]的容器实例默认挂载的目录,需要注意是否会与[镜像]的目录出现冲突
挂载目录 | 概述 |
---|---|
/data/common | 流水线执行时所有[步骤]的共享目录,项目文件、dockerfile等文件保存在该目录下 |
/data/repo | maven本地仓库缓存目录 |
示例
使用自定义jdk镜像编译java项目
1、编译自定义jdk镜像(已有jdk镜像可跳过此步)
进入[模板市场]->[镜像],点击[创建镜像]按钮
在[创建镜像]弹出框中填写[名称]选择[组织]后,点击[提交]按钮
提交成功后页面刷新,点击列表中的[镜像]进入详情页
[代码来源]选择[无],[编译环境]及[镜像类型]选择[自定义]
填写dockerfile
自定义jdk镜像dockerfile如下
FROM openjdk:8u342
RUN cd /usr/local/bin/ \
&& wget https://archive.apache.org/dist/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz \
&& tar xvf apache-maven-3.8.8-bin.tar.gz \
&& rm apache-maven-3.8.8-bin.tar.gz
ENV MAVEN_HOME=/usr/local/bin/apache-maven-3.8.8
ENV PATH=$MAVEN_HOME/bin:$PATH
以openjdk:8u342作为基础镜像,下载maven安装包到镜像中,并解压配置环境变量
openjdk镜像参考:https://hub.docker.com/_/openjdk/tags
maven安装包下载地址:https://archive.apache.org/dist/maven/maven-3
填写完成后,点击[开始编译]
镜像编译成功后,可在[镜像版本]中看到
2、流水线配置
以编译一个java项目作为示例,将默认的[代码编译]步骤,替换为[自定义]步骤
[代码编译]步骤
java项目地址:https://gitee.com/niro_chen/JavaTest.git
[自定义]步骤
[镜像]
在流水线执行[自定义]步骤时将创建"镜像"的"容器实例",填写或[选择]您要使用的镜像,示例中使用了在云平台编译的
"自定义jdk镜像"
[镜像仓库]
[镜像]的所属的镜像仓库,若拉取[镜像]无需权限认证则无需配置
[添加文件]
将外部文件挂载到[镜像]的"容器实例"中,挂载的目录固定为"/data/common/file",示例中添加了maven的setting.xml文件
[执行脚本]
[镜像]的"容器实例"启动后,所执行的脚本内容,示例中的脚本内容为进入项目JavaTest的目录,执行mvn命令编译项目,注意项目在"/data/common共享目录"下
[镜像构建]步骤
[镜像类型]选择[自定义],在[Dockerfile]中将[自定义]步骤编译生成的jar文件,添加到镜像的/data/appdeploy目录,
注意jar文件的路径,项目JavaTest与Dockerfile处于"同级目录",都在"/data/common共享目录"下,因此jar文件的路径为"JavaTest/target/xxx.jar"
作者:陈晓东 创建时间:2025-07-15 19:46
最后编辑:陈晓东 更新时间:2025-08-20 19:18
最后编辑:陈晓东 更新时间:2025-08-20 19:18