Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Can';t从Dockerfile生成docker映像_Java_Docker_Build_Spotify Docker Client - Fatal编程技术网

Java Can';t从Dockerfile生成docker映像

Java Can';t从Dockerfile生成docker映像,java,docker,build,spotify-docker-client,Java,Docker,Build,Spotify Docker Client,您好,我正在尝试从Docker文件构建Docker映像,并出现以下错误: java.lang.IllegalStateException:无法获取生成后的映像ID或摘要 在com.google.common.base.premissions.checkState(premissions.java:444)~[guava-21.0.jar:na] 在com.spotify.docker.client.DefaultDockerClient$BuildProgressHandler.getImage

您好,我正在尝试从Docker文件构建Docker映像,并出现以下错误:

java.lang.IllegalStateException:无法获取生成后的映像ID或摘要 在com.google.common.base.premissions.checkState(premissions.java:444)~[guava-21.0.jar:na] 在com.spotify.docker.client.DefaultDockerClient$BuildProgressHandler.getImageId(DefaultDockerClient.java:298)~[docker-client-8.11.7.jar:8.11.7] 在com.spotify.docker.client.DefaultDockerClient$BuildProgressHandler.access$1200(DefaultDockerClient.java:287)~[docker-client-8.11.7.jar:8.11.7] 在com.spotify.docker.client.DefaultDockerClient.build(DefaultDockerClient.java:1481)~[docker-client-8.11.7.jar:8.11.7]

我可以从命令行构建完全相同的Dockerfile,但是我无法调试它,因为堆栈跟踪信息不是很丰富。下面我留下一些可能相关的信息:

Docker版本: 客户: 版本:17.03.2-ce API版本:1.27 服务器: 版本:17.03.2-ce API版本:1.27(最低版本1.12)

spotify/docker客户端版本:8.11.7 如何调用docker构建函数: `


我查过了,状态代码实际上是200。我在驱动程序中尝试了许多Docker命令,这些命令都是成功的

我遇到了同样的问题(正如我在对问题的评论中所说的),并设法解决了它。您得到的错误是一个一般性错误,是Docker客户端代码内部的健全性检查失败的结果,该错误可能由无数不同的原因引起


要获得导致健全性检查失败的具体原因,您可以查看进度处理程序中的
message.error()
——在我的例子中,错误消息非常清楚。

我遇到了以下问题。在我的dockerfile文件中,维护者拼写错误。
请尝试使用docker build-t构建映像进行调试。

docker客户端、
映像
DockerFileFileFileName
在哪里声明,他们编辑了页面以包含请求的信息。您是否修复或解决了此问题?我昨天遇到了同样的问题,到目前为止还不知道为什么会发生:(我从maven plugin收到了同样的消息,我通过删除
.dockrignore
文件解决了这个问题:
final AtomicReference<String> imageIdFromMessage = new AtomicReference<>();

final String returnedImageId = dockerClient.build(

Paths.get("/absolute/path/to/folder"), image.getImageName(), dockerfilefilename,new ProgressHandler() {
    @Override
    public void progress(ProgressMessage message) throws DockerException {

        final String imageId = message.buildImageId();

        if (imageId != null) {
            imageIdFromMessage.set(imageId);
        }
    }
});
    DockerClient dc = DefaultDockerClient.fromEnv().build();
    final RegistryAuth registryAuth = RegistryAuth.builder() //TODO change to external config
            .email("REDACTED")
            .username("REDACTED")
            .password("REDACTED")
            .build();
    final int statusCode = dc.auth(registryAuth);

    return dc;