首页 > 解决方案 > [Java with Docker-compose]: java.io.FileNotFoundException: /var/lib/data/17.txt (没有这样的文件或目录)

问题描述

我使用 docker-compose 的 Java 应用程序在 Linux 中找不到根路径。我猜卷的路径有问题。你能帮我吗?

Cannot save user's book: java.io.IOException: java.io.FileNotFoundException: /var/lib/data/17.txt (No such file or directory)

方法:

@Override
    public ResponseEntity saveBook(MultipartFile file, String filename) {
        try {
            file.transferTo(new File("/var/lib/data/" + fileName));
        } catch (IOException e) {
            throw new LibraryException("Cannot save user's book: " + e);
        }

        return ResponseEntity.ok().build();
    }

码头工人组成:

version: '3.1'

volumes:
  mysql-data:
    driver: local
  mysql-log:
    driver: local
  mysql-conf:
    driver: local
  postgres_data:
    driver: local

services:
  dictionary_app_prod:
    container_name: dictionary_app_prod
    build:
      context: .
      dockerfile: Dockerfile
    restart: always
    ports:
      - 8888:8082
    volumes:
      - /var/lib/data:/var/lib/data

标签: javadockerfiledocker-compose

解决方案


- /var/lib/data:/var/lib/data

检查它是否正确,上面的行读取,从主机绝对/var/lib/data路径挂载到容器/var/lib/data

您可以在 docker-compose 中阅读有关主机挂载的更多详细信息。


推荐阅读