Concourse CI / Gradle:无法创建父目录 [英] Concourse CI / Gradle : Failed to create parent directory

查看:373
本文介绍了Concourse CI / Gradle:无法创建父目录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图用gradle 3.4.1 和concourse使用vagrant concourse / lite 来构建一个java项目> box( v2.7.4 )和docker镜像 gradle / 3.4.1-jdk8



我的 pipeline.yml

  --- 
资源:
- 名称:devoxx-talks-src
类型:git
check_every:1m
来源:
uri:https: //github.com/pomverte/devoxx-talks
分行:concourse-ci

工作:
- 名称:devoxx-talks-build
计划:
- get:devoxx-talks-src
trigger:true
- task:devoxx-talks-gradle
file:devoxx-talks-src / ci / task-gradle.yml

task-gradle.yml

  --- 
平台:linux

image_resource:
类型:docker-image
来源:
存储库:gradle
标记:'3.4.1-jdk8'

输入:
- 名称:devoxx-talks-s rc

运行:
路径:sh
dir:devoxx-talks-src
args:
- -exc
- |
gradle --stacktrace build

这是我得到的错误:

  + gradle --stacktrace build 
启动一个Gradle守护进程(后续版本会更快)

FAILURE:构建失败,出现异常。

*出了什么问题:
无法创建父目录 '/tmp/build/76b9d33d/devoxx-talks-src/.gradle' 创建目录时的/ tmp /编译/ 76b9d33d / devoxx-talks-src / .gradle / buildOutputCleanup'

*尝试:
使用--info或--debug选项运行以获取更多日志输出。

*例外情况是:
org.gradle.api.UncheckedIOException:无法在创建目录时创建父目录'/tmp/build/76b9d33d/devoxx-talks-src/.gradle' /tmp/build/76b9d33d/devoxx-talks-src/.gradle/buildOutputCleanup'$ or
org.gradle.util.GFileUtils.mkdirs(GFileUtils.java:313)
org.gradle.cache。 internal.DefaultPersistentDirectoryStore.open(DefaultPersistentDirectoryStore.java:52)
位于org.gradle.cache.internal.DefaultPersistentDirectoryStore.open(DefaultPersistentDirectoryStore.java:30)
位于org.gradle.cache.internal.DefaultCacheFactory。 doOpen(DefaultCacheFactory.java:89)
at org.gradle.cache.internal.DefaultCacheFactory.open(DefaultCacheFactory.java:63)
at org.gradle.cache.internal.DefaultCacheRepository $ PersistentCacheBuilder.open( DefaultCacheRepository.java:116)
org.gradle.internal.cleanup.DefaultBuildOutputCleanupCache.createCache(DefaultBuildOutputCleanupCache.java:73)
at org.gradle .internal.cleanup.DefaultBuildOutputCleanupCache.cleanIfStale(DefaultBuildOutputCleanupCache.java:52)
at org.gradle.internal.cleanup.BuildOutputCleanupListener.onConfigure(BuildOutputCleanupListener.java:26)
at org.gradle.internal.dispatch .ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at org.gradle.internal.event.DefaultListenerManager $ ListenerDetails .dispatch(DefaultListenerManager.java:249)
at org.gradle.internal.event.DefaultListenerManager $ ListenerDetails.dispatch(DefaultListenerManager.java:229)
at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch (AbstractBroadcastDispatch.java:44)
at org.gradle.internal.event.DefaultListenerManager $ EventBroadcast $ ListenerDispatch.dispatch(DefaultListenerManager.java:221)
at org.gradle.internal.event.DefaultListenerManager $ EventBroadcast $ ListenerDispatch.dispatch(Defaul tListenerManager.java:209)
at org.gradle.internal.dispatch.ProxyDispatchAdapter $ DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
at com.sun.proxy。$ Proxy16.onConfigure(Unknown Source)
at org.gradle.initialization.DefaultGradleLauncher $ ConfigureBuildAction.execute(DefaultGradleLauncher.java:239)
at org.gradle.initialization.DefaultGradleLauncher $ ConfigureBuildAction.execute(DefaultGradleLauncher.java:230)
在org.gradle.internal.Transformers $ 4.transform(Transformers.java:169)
在org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:106)
在org.gradle。 internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:56)
位于org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:160)
位于org.gradle.initialization.DefaultGradleLauncher.doBuild( DefaultGradleLauncher.java:119)在org.gradle.in处
italization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:102)
位于org.gradle.launcher.exec.GradleBuildController.run(GradleBuildController.java:71)
位于org.gradle.tooling.internal.provider。 ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute( InProcessBuildActionExecuter.java:41)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26)
at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter。
at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:49)
at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter。 java:49)
at o rg.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:31)
at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:67)
在org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)处使用org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)

at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:47)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution .java:120)
at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution .proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemo n.java:34)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec。 ForwardClientInput $ 2.call(ForwardClientInput.java:74)
在org.gradle.launcher.daemon.server.exec.ForwardClientInput $ 2.call(ForwardClientInput.java:72)
在org.gradle.util。 Swapper.swap(Swapper.java:38)
位于org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
位于org.gradle.launcher.daemon。 server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
在org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)
在org.gradle。 launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:60)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(B uildCommandOnly.java:36)
在org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
位于org.gradle.launcher.daemon.server.exec。使用org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)$ or $ $ b $ org.gradle.launcher.daemon来建立BuildEnvironment.doBuild(EstablishBuildEnvironment.java:72)
。 server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy $ 1.run(StartBuildOrRespondWithBusy.java:50)
at org.gradle .launcher.daemon.server.DaemonStateCoordinator $ 1.run(DaemonStateCoordinator.java:297)
at org.gradle.internal.concurrent.ExecutorPolicy $ CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
at org。 gradle.internal.concurrent.StoppableExecutorImpl $ 1.run(StoppableExecutorImpl.java:46)


建立失败

总时间:8.819秒

有人知道为什么Gradle不能创建父目录吗?



我应该设置一个 settings.gradle 文件可能是?

解决方案

gradle图像将用户设置为 gradle ,它没有创建新目录的必要权限。在您的任务中将用户设置为 root 作为快速修复。

task-gradle .yml

  ... 

运行:
用户:root
path:sh
dir:devoxx-talks-src
args:
- -exc
- |
gradle --stacktrace build


I'm trying to build a java project with gradle 3.4.1 and concourse using the vagrant concourse/lite box (v2.7.4) and the docker image gradle/3.4.1-jdk8

My pipeline.yml is

---
resources:
  - name: devoxx-talks-src
    type: git
    check_every: 1m
    source:
      uri: https://github.com/pomverte/devoxx-talks
      branch: concourse-ci

jobs:
  - name: devoxx-talks-build
    plan:
      - get: devoxx-talks-src
        trigger: true
      - task: devoxx-talks-gradle
        file: devoxx-talks-src/ci/task-gradle.yml

task-gradle.yml :

---
platform: linux

image_resource:
  type: docker-image
  source:
    repository: gradle
    tag: '3.4.1-jdk8'

inputs:
- name: devoxx-talks-src

run:
  path: sh
  dir: devoxx-talks-src
  args:
  - -exc
  - |
    gradle --stacktrace build

Here is the error I get :

+ gradle --stacktrace build
Starting a Gradle Daemon (subsequent builds will be faster)

FAILURE: Build failed with an exception.

* What went wrong:
Failed to create parent directory '/tmp/build/76b9d33d/devoxx-talks-src/.gradle' when creating directory '/tmp/build/76b9d33d/devoxx-talks-src/.gradle/buildOutputCleanup'

* Try:
Run with --info or --debug option to get more log output.

* Exception is:
org.gradle.api.UncheckedIOException: Failed to create parent directory '/tmp/build/76b9d33d/devoxx-talks-src/.gradle' when creating directory '/tmp/build/76b9d33d/devoxx-talks-src/.gradle/buildOutputCleanup'
    at org.gradle.util.GFileUtils.mkdirs(GFileUtils.java:313)
    at org.gradle.cache.internal.DefaultPersistentDirectoryStore.open(DefaultPersistentDirectoryStore.java:52)
    at org.gradle.cache.internal.DefaultPersistentDirectoryStore.open(DefaultPersistentDirectoryStore.java:30)
    at org.gradle.cache.internal.DefaultCacheFactory.doOpen(DefaultCacheFactory.java:89)
    at org.gradle.cache.internal.DefaultCacheFactory.open(DefaultCacheFactory.java:63)
    at org.gradle.cache.internal.DefaultCacheRepository$PersistentCacheBuilder.open(DefaultCacheRepository.java:116)
    at org.gradle.internal.cleanup.DefaultBuildOutputCleanupCache.createCache(DefaultBuildOutputCleanupCache.java:73)
    at org.gradle.internal.cleanup.DefaultBuildOutputCleanupCache.cleanIfStale(DefaultBuildOutputCleanupCache.java:52)
    at org.gradle.internal.cleanup.BuildOutputCleanupListener.onConfigure(BuildOutputCleanupListener.java:26)
    at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
    at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
    at org.gradle.internal.event.DefaultListenerManager$ListenerDetails.dispatch(DefaultListenerManager.java:249)
    at org.gradle.internal.event.DefaultListenerManager$ListenerDetails.dispatch(DefaultListenerManager.java:229)
    at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:44)
    at org.gradle.internal.event.DefaultListenerManager$EventBroadcast$ListenerDispatch.dispatch(DefaultListenerManager.java:221)
    at org.gradle.internal.event.DefaultListenerManager$EventBroadcast$ListenerDispatch.dispatch(DefaultListenerManager.java:209)
    at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
    at com.sun.proxy.$Proxy16.onConfigure(Unknown Source)
    at org.gradle.initialization.DefaultGradleLauncher$ConfigureBuildAction.execute(DefaultGradleLauncher.java:239)
    at org.gradle.initialization.DefaultGradleLauncher$ConfigureBuildAction.execute(DefaultGradleLauncher.java:230)
    at org.gradle.internal.Transformers$4.transform(Transformers.java:169)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:106)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:56)
    at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:160)
    at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:119)
    at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:102)
    at org.gradle.launcher.exec.GradleBuildController.run(GradleBuildController.java:71)
    at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
    at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:41)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26)
    at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:75)
    at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:49)
    at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:49)
    at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:31)
    at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:67)
    at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:47)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
    at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
    at org.gradle.util.Swapper.swap(Swapper.java:38)
    at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:60)
    at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:72)
    at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
    at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:297)
    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
    at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:46)


BUILD FAILED

Total time: 8.819 secs

Does anyone know why Gradle can't create the parent directory ?

Should I setup a settings.gradle file may be ?

解决方案

The gradle image sets the user to gradle, which doesn't have the necessary rights to create a new directory. Set the user to root in your task as a quick fix.

task-gradle.yml:

…

run:
  user: root
  path: sh
  dir: devoxx-talks-src
  args:
  - -exc
  - |
    gradle --stacktrace build

这篇关于Concourse CI / Gradle:无法创建父目录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆