我正在尝试使用docker-compose ( Java库)来运行Docker。然而,我总是得到一个异常:
Caused by: java.lang.IllegalStateException: Could not find docker, looked in: DockerCommandLocations{possiblePaths=[null, /usr/local/bin/docker, /usr/bin/docker]}
我的docker可执行文件在usr/local/bin中,我的docker compose可执行文件在usr/bin中。为什么会发生这种情况?
编辑:我发现库正在运行:
new File(<eachDockerLocation>).exists();
其中eachDockerLocation是"/usr/bin/docker“和"/usr/local/bin/docker”。对于这两种情况,都会返回false,这意味着由于某种原因,Java无法看到它们。为什么会这样呢?
EDIT2:我尝试在IntelliJ的测试项目中运行一个新的File.exists(),它返回了相同的结果。但是,当在终端中运行时,它将返回true。因此,IDE在这里不起作用。同样有趣的是,当我在集成开发环境中检查file.exists("/usr/bin")时,它返回true。但是如果我在集成开发环境中运行file.exists("/usr/bin/docker"),它就是假的。
发布于 2020-10-30 21:04:47
我发现这是因为Flatpak。据我所知,由于Flatpak在沙箱中运行,IntelliJ看不到实际环境,因此无法找到实际机器上的文件。
所以我建议不要使用IntelliJ的Flatpak版本。
https://stackoverflow.com/questions/64607141
复制相似问题