k8s gitlab cicd 之gradle 篇章(二)并发打包问题

前文:https://caicongyang.blog.csdn.net/article/details/132049822?spm=1001.2014.3001.5502

运行几天后发现以下问题:

Starting a Gradle Daemon, 4 busy and 2 stopped Daemons could not be reused, use --status for details

FAILURE: Build failed with an exception.

html 复制代码
$ chmod 777 gradlew
$ ./gradlew build -x test
Starting a Gradle Daemon, 4 busy and 2 stopped Daemons could not be reused, use --status for details

FAILURE: Build failed with an exception.

* What went wrong:
Gradle could not start your build.
> Could not create service of type ResourceSnapshotterCacheService using GradleUserHomeServices.createResourceSnapshotterCacheService().
   > Timeout waiting to lock file hash cache (/cache/itwork/gradle/repository/caches/6.8/fileHashes). It is currently in use by another Gradle instance.
     Owner PID: 97
     Our PID: 97
     Owner Operation: 
     Our operation: 
     Lock file: /cache/itwork/gradle/repository/caches/6.8/fileHashes/fileHashes.lock

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 1m 47s
ERROR: Job failed: command terminated with exit code 1

大概意思是就是无法并发打包;

修改后的ci文件如下:

html 复制代码
stages:
  - package
  - docker-build

package:
  stage: package
  script:
    - export GRADLE_USER_HOME=${GRADLE_USER_HOME}/${GROUP_NAME}/${CI_PROJECT_NAME}/.gradle
    - export PATH=GRADLE_USER_HOME/bin:$PATH
    - echo $GRADLE_USER_HOME
    - chmod 777 gradlew
    - ./gradlew build -x test
    - cp build/libs/app.jar ${CACHE_PIPELINE}/app.jar
  only:
    - master
    - tags
    - /^feature-.*$/
    - /^hotfix-.*$/
    - /^bugfix-.*$/
docker-build:
  stage: docker-build
  script:
    - update_dockerfile
    - docker_build .
    - update_charts_base v3 server
    - chart_build
  only:
    - master
    - tags
    - /^release-.*$/
    - /^hotfix-.*$/
    - /^bugfix-.*$/
    - /^feature-.*$/

.auto_devops: &auto_devops |
  http_status_code=`curl -o .auto_devops.sh -s -m 10 --connect-timeout 10 -w %{http_code} "${CHOERODON_URL}/devops-action/ci?gitlabProjectId=${CI_PROJECT_ID}&pipelineId=${CI_PIPELINE_ID}&token=${Token}&type=base&version=v1"`
  if [ "$http_status_code" != "200" ]; then
    cat .auto_devops.sh
    exit 1
  fi
  source .auto_devops.sh
before_script:
  - *auto_devops

核心修改点: 打包阶段每个项目设置不同的打包目录

  • export GRADLE_USER_HOME={GRADLE_USER_HOME}/{GROUP_NAME}/${CI_PROJECT_NAME}/.gradle

  • export PATH=GRADLE_USER_HOME/bin:$PATH

不知道各位大佬有没有更好的方法呢

相关推荐
ulimpid1 天前
Git | Dockerized GitLab 安装使用(简单实操版)
学习·docker·gitlab
hrlees1 天前
从零开始Ubuntu24.04上Docker构建自动化部署(四)Docker安装gitlab
docker·自动化·gitlab
it技术分享just_free1 天前
kubernetes K8S 挂载分布式存储 ceph
运维·分布式·ceph·云原生·容器·kubernetes·k8s
C+ 安口木1 天前
在 Gitlab 中使用 ChatGPT 进行 CodeReview
chatgpt·gitlab·代码复审
一叶执念1 天前
gitlab使用小结
大数据·elasticsearch·gitlab
赵渝强老师1 天前
【赵渝强老师】基于大数据组件的平台架构
docker·云原生·kubernetes·k8s
俺俺2 天前
(24)k8s部署mysql
mysql·容器·kubernetes·k8s
极小狐2 天前
极狐GitLab 17.4 重点功能解读【二】
安全·gitlab·devops·安全合规
极小狐2 天前
极狐GitLab 17.4 升级指南
gitlab·devsecops·devops·极狐gitlab·安全合规
极小狐2 天前
如何恢复被删除的 GitLab 项目?
gitlab·devsecops·devops·极狐gitlab·安全合规