欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 维修 > 实践003-Gitlab CICD编译构建

实践003-Gitlab CICD编译构建

2025/5/8 22:21:00 来源:https://blog.csdn.net/tagaochen1276/article/details/147757611  浏览:    关键词:实践003-Gitlab CICD编译构建

文章目录

    • 后端Java编译
      • 后端Java项目编译jar包
      • 后端Java构建为镜像
    • 前端VUE项目构建
      • 前端项目构建镜像

后端Java编译

后端Java项目编译jar包

直接使用流水线进行快速编译。

[root@gitclient apiserver]# vim .gitlab-ci.yml
stages:- compilecompile:stage: compileimage: maven:3.8.5-openjdk-17script:- mvn clean- mvn compile- mvn package -Dmaven.test.skip=true- ls targetonly:- maintags:- study-runner

提交流水线:

[root@gitclient apiserver]# git add .
[root@gitclient apiserver]# git commit -m "Compile Java to jar"
[root@gitclient apiserver]# git push origin main

查看编译结果,可知以成功编译出jar包。
197

此编译 jar 包后续需要封装为容器镜像,因此需要将编译的结果作为产物进行共享。
修改流水线如下后,重新提交流水线:

[root@gitclient apiserver]# vim .gitlab-ci.yml
stages:- compilecompile:stage: compileimage: uhub.service.ucloud.cn/imxhy/maven:3.8.5-openjdk-17artifacts:paths:- target/apiservice-0.0.1-SNAPSHOT.jarscript:- mvn clean- mvn compile- mvn package -Dmaven.test.skip=true- ls targetonly:- maintags:- study-runner

提交流水线:

[root@gitclient apiserver]# git add .
[root@gitclient apiserver]# git commit -m "Compile and Share Java to jar"
[root@gitclient apiserver]# git push origin main

查看流水线:

198

后端Java构建为镜像

编写相应的Dockerfile文件,将jar封装为对应的容器镜像。

[root@gitclient apiserver]# vim Dockerfile
FROM uhub.service.ucloud.cn/imxhy/maven:3.8.5-openjdk-17MAINTAINER xhy@itzgr.cnRUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" > /etc/timezoneEXPOSE 8080WORKDIR /opt/apiservice/COPY target/apiservice-0.0.1-SNAPSHOT.jar ./ENTRYPOINT ["java","-jar","/opt/apiservice/apiservice-0.0.1-SNAPSHOT.jar"]

使用Dockerfile构建镜像的步骤可以直接合入到流水线中,即增加build阶段。
提前在gitlab中创建ALIYUN_USER和ALIYUN_PASSWORD变量,配置阿里云镜像推送的账号和密码。

[root@gitclient apiserver]# vim .gitlab-ci.yml
stages:- compile- buildcompile:stage: compileimage: uhub.service.ucloud.cn/imxhy/maven:3.8.5-openjdk-17artifacts:paths:- target/apiservice-0.0.1-SNAPSHOT.jarscript:- mvn clean- mvn compile- mvn package -Dmaven.test.skip=true- ls targetonly:- maintags:- study-runnerbuild:stage: buildimage: uhub.service.ucloud.cn/imxhy/executor:v1.9.0-debugneeds:- compilescript:- ls target- IMAGE_TAG=$(echo "${CI_COMMIT_TIMESTAMP}" | sed 's/T/_/g; s/-//g; s/://g' | cut -c1-15)- IMAGE_TAG_TO_INSTALL=${CI_COMMIT_TAG:-$IMAGE_TAG}- mkdir -p /kaniko/.docker- echo "{\"auths\":{\"registry.cn-hangzhou.aliyuncs.com\":{\"auth\":\"$(echo -n ${ALIYUN_USER}:${ALIYUN_PASSWORD} | base64)\"}}}" > /kaniko/.docker/config.json- cat /kaniko/.docker/config.json- >/kaniko/executor--context "${CI_PROJECT_DIR}"--dockerfile "${CI_PROJECT_DIR}/Dockerfile"--destination "registry.cn-hangzhou.aliyuncs.com/xhyimages/apiservice:${IMAGE_TAG_TO_INSTALL}"--registry-mirror "https://dbzucv6w.mirror.aliyuncs.com"only:- main- tagstags:- study-runner

提交流水线:

[root@gitclient apiserver]# git add .
[root@gitclient apiserver]# git commit -m "Compile and Share and Build Java to jar"
[root@gitclient apiserver]# git push origin main

提示:如上流水线直接将构建的镜像推送到阿里云镜像仓库,便于后期直接使用。

查看流水线:

199

确认推送成功:

200

前端VUE项目构建

前端项目构建镜像

前端VUE项目可以直接构建为容器镜像,不需要编译。

编写如下 Dockerfile ,构建对应的容器镜像。

[root@gitclient webui]# vim Dockerfile
FROM uhub.service.ucloud.cn/imxhy/node:23.11.0MAINTAINER xhy@itzgr.cnRUN npm install -g @vue/cliWORKDIR /opt/webui/COPY . ./RUN npm installENTRYPOINT ["npm","run","serve"]

编写流水线:

[root@gitclient webui]# vim .gitlab-ci.yml
stages:- buildbuild:stage: buildimage: uhub.service.ucloud.cn/imxhy/executor:v1.9.0-debugscript:- IMAGE_TAG=$(echo "${CI_COMMIT_TIMESTAMP}" | sed 's/T/_/g; s/-//g; s/://g' | cut -c1-15)- IMAGE_TAG_TO_INSTALL=${CI_COMMIT_TAG:-$IMAGE_TAG}- mkdir -p /kaniko/.docker- echo "{\"auths\":{\"registry.cn-hangzhou.aliyuncs.com\":{\"auth\":\"$(echo -n ${ALIYUN_USER}:${ALIYUN_PASSWORD} | base64)\"}}}" > /kaniko/.docker/config.json- cat /kaniko/.docker/config.json- >/kaniko/executor--context "${CI_PROJECT_DIR}"--dockerfile "${CI_PROJECT_DIR}/Dockerfile"--destination "registry.cn-hangzhou.aliyuncs.com/xhyimages/webui:${IMAGE_TAG_TO_INSTALL}"--registry-mirror "https://dbzucv6w.mirror.aliyuncs.com"only:- main- tagstags:- study-runner

提交流水线:

[root@gitclient webui]# git add .
[root@gitclient webui]# git commit -m "Build webui to docker image"
[root@gitclient webui]# git push origin main

提示:如上流水线直接将构建的镜像推送到阿里云镜像仓库,便于后期直接使用。

查看流水线:

202

确认推送成功:

203

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词