{"record":{"id":"171bbcb2f9c36040","repo":"GoogleContainerTools/jib","slug":"helpful-suggestions-prefix-perhaps-you-should","errorCode":null,"errorMessage":"${HELPFUL_SUGGESTIONS_PREFIX}, perhaps you should make sure Docker is installed and you have correct privileges to run it","messagePattern":"(.+?), perhaps you should make sure Docker is installed and you have correct privileges to run it","errorType":"console","errorClass":"GradleException","httpStatus":null,"severity":"error","filePath":"jib-gradle-plugin/src/main/java/com/google/cloud/tools/jib/gradle/BuildDockerTask.java","lineNumber":102,"sourceCode":"   * @throws BuildStepsExecutionException if an error occurs while executing build steps\n   * @throws CacheDirectoryCreationException if a new cache directory could not be created\n   * @throws MainClassInferenceException if a main class could not be found\n   * @throws InvalidGlobalConfigException if the global config file is invalid\n   */\n  @TaskAction\n  public void buildDocker()\n      throws IOException, BuildStepsExecutionException, CacheDirectoryCreationException,\n          MainClassInferenceException, InvalidGlobalConfigException {\n    Preconditions.checkNotNull(jibExtension);\n\n    // Check deprecated parameters\n    Path dockerExecutable = jibExtension.getDockerClient().getExecutablePath();\n    boolean isDockerInstalled =\n        dockerExecutable == null\n            ? CliDockerClient.isDefaultDockerInstalled()\n            : CliDockerClient.isDockerInstalled(dockerExecutable);\n    if (!isDockerInstalled) {\n      throw new GradleException(\n          HelpfulSuggestions.forDockerNotInstalled(HELPFUL_SUGGESTIONS_PREFIX));\n    }\n\n    TaskCommon.disableHttpLogging();\n    TempDirectoryProvider tempDirectoryProvider = new TempDirectoryProvider();\n\n    GradleProjectProperties projectProperties =\n        GradleProjectProperties.getForProject(\n            getProject(),\n            getLogger(),\n            tempDirectoryProvider,\n            jibExtension.getConfigurationName().get());\n    GlobalConfig globalConfig = GlobalConfig.readConfig();\n    Future<Optional<String>> updateCheckFuture =\n        TaskCommon.newUpdateChecker(projectProperties, globalConfig, getLogger());\n    try {\n\n      PluginConfigurationProcessor.createJibBuildRunnerForDockerDaemonImage(","sourceCodeStart":84,"sourceCodeEnd":120,"githubUrl":"https://github.com/GoogleContainerTools/jib/blob/fb949e2676afbbd7dd7a1ef61e20251931325654/jib-gradle-plugin/src/main/java/com/google/cloud/tools/jib/gradle/BuildDockerTask.java#L84-L120","documentation":"BuildDockerTask (Gradle 'jibBuildDocker') throws a GradleException when the Docker CLI executable cannot be found: either the default docker binary is absent or the configured dockerClient.executable path does not exist. Jib includes HelpfulSuggestions noting you should verify Docker is installed and that you have privileges to run it.","triggerScenarios":"Running ./gradlew jibBuildDocker on a machine without Docker installed; jib.dockerClient.executable set to a wrong path; Docker CLI present but daemon unusable/unprivileged in the environment.","commonSituations":"CI containers without Docker; building on a machine that never installed Docker Desktop; path to docker binary changed after upgrade; missing group/permission to run docker.","solutions":["Install Docker and start the daemon, or point jib.dockerClient.executable to a valid docker binary.","Fix the executable path in the build config if custom: jib { dockerClient { executable = '/path/to/docker' } }.","If you only wanted to build/push the image without a local Docker daemon, use 'jib build' or 'jibBuildTar' instead of 'jibBuildDocker'.","Grant privileges (docker group / run as non-root user in docker group) if Docker is installed but inaccessible."],"exampleFix":"// before\n./gradlew jibBuildDocker // docker not installed\n// after (no local Docker needed)\n./gradlew jibBuild  # or: jib { dockerClient { executable = '/usr/local/bin/docker' } }","handlingStrategy":"validation","validationCode":"// Check docker availability before invoking jibBuildDocker\nboolean ok = com.google.cloud.tools.jib.builder.cli.CliDockerClient.isDefaultDockerInstalled();","typeGuard":null,"tryCatchPattern":"try { /* ./gradlew jibBuildDocker */ } catch (GradleException e) { if (e.getMessage().contains(\"Docker is installed\")) { logger.lifecycle(\"Docker missing; falling back to 'jib build'\"); } }","preventionTips":["Install Docker Desktop/Engine wherever jibBuildDocker runs.","Point jib.dockerClient.executable at the correct docker binary when it's non-standard.","Prefer 'jib build' (no local daemon) in CI.","Ensure the build user is in the docker group / has daemon access."],"tags":["docker","gradle","docker-not-installed"],"backgroundTag":"missing-dependency","analyzedSha":"fb949e2676afbbd7dd7a1ef61e20251931325654","analyzedAt":"2026-09-06T14:04:09.491Z","contentChangedAt":"2026-09-06T14:04:09.491Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}