Skip to content

Task :nodeSetup fails #124

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
mwelsch opened this issue Nov 28, 2019 · 5 comments
Closed

Task :nodeSetup fails #124

mwelsch opened this issue Nov 28, 2019 · 5 comments

Comments

@mwelsch
Copy link

mwelsch commented Nov 28, 2019

I'm aware of #88 but the issue seems to be closed/ignored.
Running gradle appInstall --info gives me the following error:

Initialized native services in: /home/gradle/.gradle/native
The client will now receive all logging from the daemon (pid: 45). The daemon log file: /home/gradle/.gradle/daemon/6.0.1/daemon-45.out.log
Starting 9th build in daemon [uptime: 16 mins 37.088 secs, performance: 100%, non-heap usage: 47% of 268.4 MB]
Using 8 worker leases.
Starting Build
Settings evaluated using settings file '/easylist/WebService/settings.gradle.kts'.
Projects loaded. Root project using build file '/easylist/WebService/build.gradle.kts'.
Included projects: [root project 'web']

> Configure project :
Evaluating root project 'web' using build file '/easylist/WebService/build.gradle.kts'.
Applying dependency management to configuration 'bootArchives' in project 'web'
Applying dependency management to configuration 'kotlinCompilerClasspath' in project 'web'
Applying dependency management to configuration 'kotlinCompilerPluginClasspath' in project 'web'
Applying dependency management to configuration 'kotlinNativeCompilerPluginClasspath' in project 'web'
Applying dependency management to configuration 'archives' in project 'web'
Applying dependency management to configuration 'default' in project 'web'
Applying dependency management to configuration 'compile' in project 'web'
Applying dependency management to configuration 'implementation' in project 'web'
Applying dependency management to configuration 'runtime' in project 'web'
Applying dependency management to configuration 'compileOnly' in project 'web'
Applying dependency management to configuration 'compileClasspath' in project 'web'
Applying dependency management to configuration 'annotationProcessor' in project 'web'
Applying dependency management to configuration 'runtimeOnly' in project 'web'
Applying dependency management to configuration 'runtimeClasspath' in project 'web'
Applying dependency management to configuration 'testCompile' in project 'web'
Applying dependency management to configuration 'testImplementation' in project 'web'
Applying dependency management to configuration 'testRuntime' in project 'web'
Applying dependency management to configuration 'testCompileOnly' in project 'web'
Applying dependency management to configuration 'testCompileClasspath' in project 'web'
Applying dependency management to configuration 'testAnnotationProcessor' in project 'web'
Applying dependency management to configuration 'testRuntimeOnly' in project 'web'
Applying dependency management to configuration 'testRuntimeClasspath' in project 'web'
Applying dependency management to configuration 'apiElements' in project 'web'
Applying dependency management to configuration 'runtimeElements' in project 'web'
Applying dependency management to configuration 'api' in project 'web'
Applying dependency management to configuration 'apiDependenciesMetadata' in project 'web'
Applying dependency management to configuration 'implementationDependenciesMetadata' in project 'web'
Applying dependency management to configuration 'compileOnlyDependenciesMetadata' in project 'web'
Applying dependency management to configuration 'runtimeOnlyDependenciesMetadata' in project 'web'
Applying dependency management to configuration 'testApi' in project 'web'
Applying dependency management to configuration 'testApiDependenciesMetadata' in project 'web'
Applying dependency management to configuration 'testImplementationDependenciesMetadata' in project 'web'
Applying dependency management to configuration 'testCompileOnlyDependenciesMetadata' in project 'web'
Applying dependency management to configuration 'testRuntimeOnlyDependenciesMetadata' in project 'web'
Applying dependency management to configuration 'kotlinScriptDef' in project 'web'
kotlin scripting plugin: created the scripting discovery configuration: kotlinScriptDef
Applying dependency management to configuration 'kotlinScriptDefExtensions' in project 'web'
Applying dependency management to configuration 'testKotlinScriptDef' in project 'web'
kotlin scripting plugin: created the scripting discovery configuration: testKotlinScriptDef
Applying dependency management to configuration 'testKotlinScriptDefExtensions' in project 'web'
Applying dependency management to configuration 'sourceArtifacts' in project 'web'
Applying dependency management to configuration 'developmentOnly' in project 'web'
Applying dependency management to configuration '-api' in project 'web'
Applying dependency management to configuration '-runtime' in project 'web'
All projects evaluated.
Selected primary task 'appInstall' from project :
Tasks to be executed: [task ':nodeSetup', task ':npmSetup', task ':appInstall']
:nodeSetup (Thread[Execution worker for ':',5,main]) started.

> Task :nodeSetup FAILED
Caching disabled for task ':nodeSetup' because:
  Build cache is disabled
Task ':nodeSetup' is not up-to-date because:
  Task has failed previously.
Resource missing. [HTTP GET: https://nodejs.org/dist/v12.12.0/ivy.xml]
:nodeSetup (Thread[Execution worker for ':',5,main]) completed. Took 0.228 secs.

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':nodeSetup'.
> Could not resolve all files for configuration ':detachedConfiguration3'.
   > Could not find org.nodejs:node:12.12.0.
     Searched in the following locations:
       - https://nodejs.org/dist/v12.12.0/ivy.xml
     Required by:
         project :

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

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

Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.0.1/userguide/command_line_interface.html#sec:command_line_warnings

BUILD FAILED in 823ms
1 actionable task: 1 executed

The location the task has been looking for: https://nodejs.org/dist/v12.12.0/ivy.xml returns a 404 error.
My build.gradle.kts:

import com.moowork.gradle.node.npm.NpmTask
import com.moowork.gradle.node.yarn.YarnTask
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

plugins {
    id("org.springframework.boot") version "2.2.0.RELEASE"
    id("io.spring.dependency-management") version "1.0.8.RELEASE"
    id("com.moowork.node") version "1.3.1"
    kotlin("jvm") version "1.3.50"
    kotlin("plugin.spring") version "1.3.50"
}

node {
    // Version of node to use.
    version = "12.12.0"
    // Version of npm to use.
    npmVersion = "6.11.3"
    // Version of Yarn to use.
    yarnVersion = "1.19.1"
    // Base URL for fetching node distributions (change if you have a mirror).
    distBaseUrl = "https://nodejs.org/dist"
    // If true, it will download node using above parameters.
    // If false, it will try to use globally installed node.
    download = true
    // Set the work directory for unpacking node
    workDir = file("${project.buildDir}/src/main/app")
    // Set the work directory for NPM
    npmWorkDir = file("${project.buildDir}/src/main/app")
    // Set the work directory for Yarn
    yarnWorkDir = file("${project.buildDir}/src/main/app")
    // Set the work directory where node_modules should be located
    nodeModulesDir = file("${project.projectDir}/src/main/app")
}

group = "dev.easypass"
version = "0.0.1-SNAPSHOT"
java.sourceCompatibility = JavaVersion.VERSION_1_8

val developmentOnly by configurations.creating
configurations {
    runtimeClasspath {
        extendsFrom(developmentOnly)
    }
}

repositories {
    mavenCentral()
    maven { url = uri("https://repo.spring.io/milestone") }
}

extra["springCloudVersion"] = "Hoxton.M3"

dependencies {
    implementation("org.springframework.boot:spring-boot-starter-security")
    implementation("org.springframework.boot:spring-boot-starter-thymeleaf")
    implementation("org.springframework.boot:spring-boot-starter-web")
    implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
    implementation("org.jetbrains.kotlin:kotlin-reflect")
    implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
    implementation("org.springframework.cloud:spring-cloud-starter-netflix-eureka-client")
    developmentOnly("org.springframework.boot:spring-boot-devtools")
    testImplementation("org.springframework.boot:spring-boot-starter-test") {
        exclude(group = "org.junit.vintage", module = "junit-vintage-engine")
    }
    testImplementation("org.springframework.security:spring-security-test")
}

dependencyManagement {
    imports {
        mavenBom("org.springframework.cloud:spring-cloud-dependencies:${property("springCloudVersion")}")
    }
}

tasks.withType<Test> {
    useJUnitPlatform()
}

tasks.withType<KotlinCompile> {
    kotlinOptions {
        freeCompilerArgs = listOf("-Xjsr305=strict")
        jvmTarget = "1.8"
    }
}

task<NpmTask>("appInstall") {
    group = "easypass"
    description = "Installs all dependencies from package.json"
    setWorkingDir(file("${project.projectDir}/src/main/app"))
    setArgs(listOf("install"))
}

task<NpmTask>("appBuild") {
    group = "easypass"
    description = "Builds production version of the webapp"
    setWorkingDir(file("${project.projectDir}/src/main/app"))
    setArgs(listOf("run", "build"))
}

task<NpmTask>("appTest") {
    group = "easypass"
    description = "Runs all tests of the webapp"
    setWorkingDir(file("${project.projectDir}/src/main/app"))
    setArgs(listOf("test"))
}

task("appCopy") {
    group = "easypass"
    copy {
        from("src/main/app/build")
        into("out/production/resources/main/static/")
        exclude("index.html")
    }
    copy {
        from("src/main/app/build")
        into("build/resources/main/static/")
        exclude("index.html")
    }
    copy {
        from("src/main/app/build")
        into("src/main/resources/static/")
        exclude("index.html")
    }
    copy {
        from(File("src/main/app/build/index.html"))
        into("out/production/resources/main/templates")
    }
    copy {
        from(File("src/main/app/build/index.html"))
        into("build/resources/main/templates")
    }

    copy {
        from(File("src/main/app/build/index.html"))
        into("src/main/resources/templates")
    }
}

task("appCopyProduction") {
    group = "easypass"
    copy {
        from("src/main/app/build")
        into("out/production/resources/main/static/")
        exclude("index.html", "backendtest.html")
    }
    copy {
        from("src/main/app/build")
        into("build/resources/main/static/")
        exclude("index.html", "backendtest.html")
    }
    copy {
        from("src/main/app/build")
        into("src/main/resources/static/")
        exclude("index.html", "backendtest.html")
    }
    copy {
        from(File("src/main/app/build/index.html"))
        into("out/production/resources/main/templates")
    }
    copy {
        from(File("src/main/app/build/backendtest.html"))
        into("out/production/resources/main/templates")
    }
    copy {
        from(File("src/main/app/build/index.html"))
        into("build/resources/main/templates")
    }
    copy {
        from(File("src/main/app/build/backendtest.html"))
        into("build/resources/main/templates")
    }
    copy {
        from(File("src/main/app/build/index.html"))
        into("src/main/resources/templates")
    }
    copy {
        from(File("src/main/app/build/backendtest.html"))
        into("src/main/resources/templates")
    }
}

task<Exec>("wasmBuild") {
    group = "easypass"
    workingDir = File("src/main/rust")
    commandLine = if (System.getProperty("os.name").toLowerCase().contains("windows")) {
        listOf("cmd", "/c", "wasm-pack", "build", "--release", "--no-typescript")
    } else {
        listOf("wasm-pack", "build", "--release", "--no-typescript")
    }
}

Running the build locally works. I checked my version which is 5.1 so I tried to change the docker tag to 5.1.1-jdk-slim. It didn't work and I wasn't expecting it because the error message doesn't look like it's version specific

Any help would be appreciated!

@keeganwitt
Copy link
Owner

keeganwitt commented Nov 29, 2019

I wasn't ignoring it, I just never got any response from the reporter to help me troubleshoot the issue. I suppose I should go ahead and close it, since it's been open so long.

I'm (still) not really familiar with this plugin. Interestingly, a simple setup fails for me locally with the same HTTP 404 (Resource missing. [HTTP GET: https://nodejs.org/dist/v12.13.1/ivy.xml]).

build.gradle.kts

group = "com.github.keeganwitt.tests"
version = "1.0.0-SNAPSHOT"
plugins {
  id("com.moowork.node") version "1.3.1"
}
node {
    version = "12.13.1"
    distBaseUrl = "https://nodejs.org/dist"
    download = true
    workDir = file("${project.buildDir}/nodejs")
    nodeModulesDir = file("${project.projectDir}")
}

settings.gradle.kts

rootProject.name = "gradle-node"

docker run --rm -u gradle -v "C:/Users/Keegan/Desktop/gradle-node:/home/gradle/project" -w /home/gradle/project gradle gradle --no-daemon nodeSetup

However, I don't think there's an issue with the Docker image or the network configuration, because I can curl the URL just fine
docker run --rm -u gradle -v "C:/Users/Keegan/Desktop/gradle-node:/home/gradle/project" -w /home/gradle/project gradle curl https://nodejs.org/dist/v12.13.1/ivy.xml

@keeganwitt
Copy link
Owner

It looks like it is able to make a connection to the server and pull the certificate and cipher suites in too. I'm not sure what's going on here.

2019-11-29T17:03:07.898+0000 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Download https://nodejs.org/dist/v12.13.1/ivy.xml' started
2019-11-29T17:03:07.898+0000 [DEBUG] [org.gradle.internal.resource.transport.http.HttpResourceAccessor] Constructing external resource: https://nodejs.org/dist/v12.13.1/ivy.xml
2019-11-29T17:03:07.898+0000 [DEBUG] [org.gradle.internal.resource.transport.http.HttpClientHelper] Performing HTTP GET: https://nodejs.org/dist/v12.13.1/ivy.xml
2019-11-29T17:03:07.898+0000 [DEBUG] [org.apache.http.client.protocol.RequestAddCookies] CookieSpec selected: default
2019-11-29T17:03:07.899+0000 [DEBUG] [org.apache.http.client.protocol.RequestAuthCache] Auth cache not set in the context
2019-11-29T17:03:07.899+0000 [DEBUG] [org.apache.http.impl.conn.PoolingHttpClientConnectionManager] Connection request: [route: {s}->https://nodejs.org:443][total kept alive: 0; route allocated: 0 of 20; total allocated: 0 of 20]
2019-11-29T17:03:07.899+0000 [DEBUG] [org.apache.http.impl.conn.PoolingHttpClientConnectionManager] Connection leased: [id: 3][route: {s}->https://nodejs.org:443][total kept alive: 0; route allocated: 1 of 20; total allocated: 1 of 20]
2019-11-29T17:03:07.899+0000 [DEBUG] [org.apache.http.impl.execchain.MainClientExec] Opening connection {s}->https://nodejs.org:443
2019-11-29T17:03:07.900+0000 [DEBUG] [org.apache.http.impl.conn.DefaultHttpClientConnectionOperator] Connecting to nodejs.org/104.20.22.46:443
2019-11-29T17:03:07.900+0000 [DEBUG] [org.apache.http.conn.ssl.SSLConnectionSocketFactory] Connecting socket to nodejs.org/104.20.22.46:443 with timeout 30000
2019-11-29T17:03:07.939+0000 [DEBUG] [org.apache.http.conn.ssl.SSLConnectionSocketFactory] Enabled protocols: [TLSv1, TLSv1.1, TLSv1.2]
2019-11-29T17:03:07.939+0000 [DEBUG] [org.apache.http.conn.ssl.SSLConnectionSocketFactory] Enabled cipher suites:[TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, TLS_RSA_WITH_AES_256_CBC_SHA256, TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384, TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384, TLS_DHE_RSA_WITH_AES_256_CBC_SHA256, TLS_DHE_DSS_WITH_AES_256_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDH_RSA_WITH_AES_256_CBC_SHA, TLS_DHE_RSA_WITH_AES_256_CBC_SHA, TLS_DHE_DSS_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256, TLS_DHE_RSA_WITH_AES_128_CBC_SHA256, TLS_DHE_DSS_WITH_AES_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384, TLS_DHE_RSA_WITH_AES_256_GCM_SHA384, TLS_DHE_DSS_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256, TLS_DHE_RSA_WITH_AES_128_GCM_SHA256, TLS_DHE_DSS_WITH_AES_128_GCM_SHA256, TLS_EMPTY_RENEGOTIATION_INFO_SCSV]
2019-11-29T17:03:07.939+0000 [DEBUG] [org.apache.http.conn.ssl.SSLConnectionSocketFactory] Starting handshake
2019-11-29T17:03:08.069+0000 [DEBUG] [org.apache.http.conn.ssl.SSLConnectionSocketFactory] Secure session established
2019-11-29T17:03:08.069+0000 [DEBUG] [org.apache.http.conn.ssl.SSLConnectionSocketFactory]  negotiated protocol: TLSv1.2
2019-11-29T17:03:08.069+0000 [DEBUG] [org.apache.http.conn.ssl.SSLConnectionSocketFactory]  negotiated cipher suite: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
2019-11-29T17:03:08.070+0000 [DEBUG] [org.apache.http.conn.ssl.SSLConnectionSocketFactory]  peer principal: CN=*.nodejs.org, OU=PositiveSSL Wildcard, OU=Domain Control Validated
2019-11-29T17:03:08.070+0000 [DEBUG] [org.apache.http.conn.ssl.SSLConnectionSocketFactory]  peer alternative names: [*.nodejs.org, nodejs.org]
2019-11-29T17:03:08.070+0000 [DEBUG] [org.apache.http.conn.ssl.SSLConnectionSocketFactory]  issuer principal: CN=Sectigo RSA Domain Validation Secure Server CA, O=Sectigo Limited, L=Salford, ST=Greater Manchester, C=GB
2019-11-29T17:03:08.070+0000 [DEBUG] [org.apache.http.impl.conn.DefaultHttpClientConnectionOperator] Connection established 172.17.0.2:45648<->104.20.22.46:443
2019-11-29T17:03:08.070+0000 [DEBUG] [org.apache.http.impl.conn.DefaultManagedHttpClientConnection] http-outgoing-3: set socket timeout to 30000
2019-11-29T17:03:08.070+0000 [DEBUG] [org.apache.http.impl.execchain.MainClientExec] Executing request GET /dist/v12.13.1/ivy.xml HTTP/1.1
2019-11-29T17:03:08.070+0000 [DEBUG] [org.apache.http.impl.execchain.MainClientExec] Target auth state: UNCHALLENGED
2019-11-29T17:03:08.070+0000 [DEBUG] [org.apache.http.impl.execchain.MainClientExec] Proxy auth state: UNCHALLENGED
2019-11-29T17:03:08.149+0000 [DEBUG] [org.apache.http.impl.execchain.MainClientExec] Connection can be kept alive indefinitely
2019-11-29T17:03:08.150+0000 [DEBUG] [org.apache.http.client.protocol.ResponseProcessCookies] Cookie accepted [__cfduid="dc322a5657083fa7f0da313e6550cad321575046975", version:0, domain:nodejs.org, path:/, expiry:Sun Dec 29 17:02:55 GMT 2019]
2019-11-29T17:03:08.151+0000 [DEBUG] [org.apache.http.impl.conn.PoolingHttpClientConnectionManager] Connection [id: 3][route: {s}->https://nodejs.org:443] can be kept alive indefinitely
2019-11-29T17:03:08.151+0000 [DEBUG] [org.apache.http.impl.conn.DefaultManagedHttpClientConnection] http-outgoing-3: set socket timeout to 0
2019-11-29T17:03:08.151+0000 [DEBUG] [org.apache.http.impl.conn.PoolingHttpClientConnectionManager] Connection released: [id: 3][route: {s}->https://nodejs.org:443][total kept alive: 1; route allocated: 1 of 20; total allocated: 1 of 20]
2019-11-29T17:03:08.151+0000 [INFO] [org.gradle.internal.resource.transport.http.HttpClientHelper] Resource missing. [HTTP GET: https://nodejs.org/dist/v12.13.1/ivy.xml]
2019-11-29T17:03:08.151+0000 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Completing Build operation 'Download https://nodejs.org/dist/v12.13.1/ivy.xml'
2019-11-29T17:03:08.151+0000 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Download https://nodejs.org/dist/v12.13.1/ivy.xml' completed
2019-11-29T17:03:08.151+0000 [DEBUG] [org.gradle.api.internal.artifacts.repositories.resolver.ExternalResourceResolver] No meta-data file or artifact found for module 'org.nodejs:node:12.13.1' in repository 'ivy'.

@keeganwitt
Copy link
Owner

Actually, the curl didn't succeed, the curl was pulling in a 404 HTML response. Looking in the parent directory (https://nodejs.org/dist/v12.13.1/), I don't see that Ivy XML file there anymore. Perhaps Node doesn't publish artifacts as an Ivy repo anymore? It sounded like from some of the comments in GitHub that the ivy.xml was a fallback that appears to have not been working for several versions.

You might find this useful (if you haven't seen them already): srs/gradle-node-plugin#292 (comment) (commenter says Gradle 6 doesn't work, but Gradle 4 does).

From the issue mentioned in that comment, they mentioned a fork of the plugin (https://github.com/node-gradle/gradle-node-plugin). When I switched to the fork, it worked for me.

@mwelsch
Copy link
Author

mwelsch commented Nov 29, 2019

Interestingly enough my fried suggested me to simply run the npm tasks with the gradlew which was provided with the project. The task completed successful, it said while it was running that the version used is 5.6.2. I feel like this discussion doesn't belong here so I'm gonna close the issue. As @keeganwitt pointed out there is a fork of the gradle-node-plugin which makes stuff work fine again. Feel free to reopen if you think it's a problem with the docker version of gradle.
Thanks!

@keeganwitt
Copy link
Owner

keeganwitt commented Nov 29, 2019

Running with gradlew won't use the Gradle provided by the image, it will use whatever version your wrapper is configured to use. There shouldn't be any difference though, all this image is is an unzipped Gradle archive on top of the official AdoptOpenJDK base image (with gradle tossed into the path).

The advantage to using this image to to avoid downloading Gradle each time (which the wrapper will do unless you mount the directory Gradle is downloaded into somewhere so it can be persisted).

I'd suggest maybe trying that same version your wrapper uses. Or if you're happy with the wrapper, you could use one of the Java base images (AdoptOpenJDK, Amazon Corretto, OpenJDK, etc) instead of this image, to save some disk space, since you aren't using the Gradle in the image.

At the moment, it seems to me this is likely an issue with that plugin and its compatibility with different Gradle versions, and not an issue with this Docker image.

@mwelsch mwelsch closed this as completed Dec 5, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants