使用runner打包应用,gradle build执行快10分钟,要如何优化?

  • Choerodon平台版本:0.16.0

  • 运行环境:自主搭建

  • 问题描述:

    请尽量详细的描述您遇到的问题,以便我们能更快速的提供解决办法。

    如:使用runner打包一个java应用,结果如下

使用gradle build居然耗时9分21秒,这个慢到无法忍受啊,目前只是在测试一个项目,后续40–50多个微服务都使用runner来构建的话,这个效率完全不能接受了。

  • 执行的操作:
    如:目前是完全按照部署文档来安装的,这种要如何优化,增加runner的资源是否有效?是否有其他的方式?

  • 报错信息(请尽量使用代码块的形式展现):

  • 建议:

    如果将gitlab部署在物理机上,不部署到kubernetes,但是gitlab需要和choerodon集成,这块是否有测试,功能是否存在差异?

构建速度取决于您runner的机器性能,建议您先适当提到runnner的资源限制,该配置文件在您安装runner的命名空间下你能够找到一个名为gitlab-runner-xx的配置文件,里面可以定义每一个job运行环境的资源限制。另外在你执行job时你需要考虑到多个job互相抢资源的情况。更多关于gitlab-runner的配置你可以查看此处
https://docs.gitlab.com/runner/install/

      [runners.kubernetes]
        image = "registry.cn-hangzhou.aliyuncs.com/choerodon-tools/cibase:0.7.0"
        namespace = "c7n-system"
        namespace_overwrite_allowed = ""
        privileged = true
        service_account_overwrite_allowed = ""
        pull_policy = "always"
        cpu_limit = "1"
        cpu_request = "500m"
        memory_request = "1Gi"
        memory_limit = "2Gi"
        service_cpu_limit = "500m"
        service_cpu_request = "100m"
        service_memory_limit = "800Mi"
        service_memory_request = "500Mi"
        helper_cpu_limit = "500m"
        helper_cpu_request = "100m"
        helper_memory_limit = "200Mi"
        helper_memory_request  = "100Mi"
        helper_image = "gitlab/gitlab-runner-helper:x86_64-7f00c780"
        [runners.kubernetes.volumes]
          [[runners.kubernetes.volumes.host_path]]
            name = "docker"
            mount_path = "/var/run/docker.sock"
            host_path = "/var/run/docker.sock"
          [[runners.kubernetes.volumes.pvc]]
            name = "runner-cache-pvc"
            mount_path = "/cache"
            readonly = false
          [[runners.kubernetes.volumes.pvc]]
            name = "runner-maven-pvc"
            mount_path = "/root/.m2"
            readonly = false

默认的runner资源太低了,我去试试增加runner的配置。

文档中的runner部署是这样的:

helm install c7n/gitlab-runner \
    --set rbac.create=true \
    --set env.concurrent=3 \
    --set env.gitlabUrl=http://gitlab.example.choerodon.io/ \
    --set env.runnerRegistrationToken=xwxobLNoPQUzyMt_4RGF \
    --set env.environment.DOCKER_REGISTRY=registry.example.choerodon.io \
    --set env.environment.DOCKER_USER=admin \
    --set env.environment.DOCKER_PWD=Harbor12345 \
    --set env.environment.CHOERODON_URL=http://api.example.choerodon.io \
    --set env.persistence.runner-maven-pvc="/root/.m2" \
    --set env.persistence.runner-cache-pvc="/cache" \
    --name runner \
    --version 0.2.0 \
    --namespace c7n-system

/root/.m2会保存maven的编译的缓存,使用gradle编译,我这里需要新增一个pvc,挂在到/root/.gradle,会不会加快gradle的编译速度?

另外咨询下:如果我将runner部署到物理机上,要如何设置?特别是指定的那些环境变量怎么加载。