Docker - 无法在java中的卷之间移动文件

lbe*_*ski 3 java docker docker-compose

我有两个泊坞容器:生产者和消费者.

消费者容器有两卷:

VOLUME      ["/opt/queue/in", "/opt/queue/out"]
Run Code Online (Sandbox Code Playgroud)

泊坞窗,compose.yml

consumer:
    image: consumer
producer:
    image: producer
    volumes_from:
    - consumer
Run Code Online (Sandbox Code Playgroud)

生产者将文件放在/opt/queue/in目录中,消费者从该目录读取文件并将其移动到/opt/queue/out.问题是消费者是用Java编写的,并且遵循Java代码返回-1(操作失败).

new File('/opt/queue/in/in_file').renameTo(new File('/opt/queue/in/in_file'));
Run Code Online (Sandbox Code Playgroud)

当我尝试从命令行移动文件时没有错误.文件正确移动.为什么会这样?我怎样才能诊断出问题所在?

Ian*_*rts 5

File.renameTo的javadoc明确表示它可能无法在不同卷之间移动文件,并且如果您需要以独立于平台的方式支持此案例,则应使用Files.move.