Gradle sotto Docker – Imansible aprire cp_proj cache della class remapped

Ho installato Jenkins 2.6 come un contenitore docker su una macchina Windows Server 2012.

Ho creato un progetto che controlla un progetto da git.

Ho configurato un passo di build che fa una build utilizzando il wrapper gradle 2.13

Il command gradle fallisce con:

FAILURE: Build failed with an exception. * What went wrong: A problem occurred configuring root project 'test'. > Could not open cp_proj remapped class cache for 6f7e45oinduki44jplv0c4r9s (/var/jenkins_home/.gradle/caches/2.13/scrip ts-remapped/build_4xwqfk0ckitkb3fdwi5uf1f5e/6f7e45oinduki44jplv0c4r9s/cp_proj57408229). > java.io.FileNotFoundException: /var/jenkins_home/.gradle/caches/2.13/scripts-remapped/build_4xwqfk0ckitkb3fdwi5uf1f 5e/6f7e45oinduki44jplv0c4r9s/cp_proj57408229/classs/build_4xwqfk0ckitkb3fdwi5uf1f5e$_run_closure1$_closure3$_closure5.c lass (Operation not permitted) * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. BUILD FAILED 

Ho provato a remotare nel contenitore e eseguire manualmente il command gradle ma get lo stesso errore.

Ho trovato un articolo su Internet che ha raccomandato l'eliminazione dei file di block: cache.properties.lock

Questo non ha aiutato.

Ho anche provato a riavviare il contenitore, ma questo non ha aiutato neanche.

Ho avuto lo stesso problema che alless per me era per due motivi:

  1. La mia variabile di sistema di home java stava indicando jdk7 anziché jdk8
  2. Il proxy stava bloccando jCentral.

Soluzione:

  1. Per la prima causa la soluzione è abbastanza semplice. Ho appena indicato la JAVA_HOME per avere versione java 8
  2. Nella directory home dell'utente (che per me era c: / users /) /. Gradle ho creato un file chiamato gradle.properties in cui ho messo le impostazioni successive:

    systemProp.http.proxyHost = ..

    systemProp.http.proxyPort = ..

    systemProp.http.proxyUser = ..

    systemProp.http.proxyPassword = ..

    systemProp. https .proxyHost = ..

    systemProp. https .proxyPort = ..

    systemProp. https .proxyUser = ..

    systemProp. https .proxyPassword = ..

Spero che questo sarà utile per qualcun altro in futuro.