java - Docker Compose找不到Docker

标签 java docker docker-compose

我正在尝试使用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();
其中每个DockerLocation是“/ usr / bin / docker”和“/ usr / local / bin / docker”。对于这两种情况,都返回false,这意味着Java由于某种原因无法看到它们。为什么会这样呢?
编辑2:
我尝试在IntelliJ的测试项目中运行一个新的File.exists(),它返回了同样的东西。但是,在终端中运行时,它返回true。因此,IDE在这里不起作用。
有趣的是,当我在IDE中检查file.exists(“/ usr / bin”)时,它返回true。但是,如果我在IDE中运行file.exists(“/ usr / bin / docker”),那是错误的。

最佳答案

我发现原因是Flatpak。据我所知,Flatpak在沙箱中运行事物,因此IntelliJ没有看到实际的环境,因此无法找到实际机器上的文件。
因此,我建议不要使用IntelliJ 的Flatpak版本。

关于java - Docker Compose找不到Docker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64607141/

相关文章:

Mysql docker 容器在导​​入数据时阻塞(OSX)

java - 实现自定义比较器

java - 如何通过 CSVParser 处理大文件?

Web 服务中长时间运行进程的 Java 模式

mono - WebSharper ui.next站点在本地工作,但不在docker中工作

docker - 在同一docker-compose.yml文件中扩展服务

mysql - 无法连接到 Windows 10 Docker mysql

java - 蜂窝数据上的 FTP 显式失败

docker - 无法在 Mac : Fatal Error failed to ping backend api 的应用程序中重新启动和删除 Docker

docker - SignalR 应用程序在 docker 容器中部署时无法正常工作