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
docker中的java应用程序如何在ubuntu 18.4的装入点中定位文件_Docker_Point_Mount - Fatal编程技术网

docker中的java应用程序如何在ubuntu 18.4的装入点中定位文件

docker中的java应用程序如何在ubuntu 18.4的装入点中定位文件,docker,point,mount,Docker,Point,Mount,我是新来的码头工人。我在docker中运行了一个简单的Java应用程序。当应用程序试图找到主机路径为/mnt/share/abc.json的文件时,它将返回一个错误消息4:java.io.FileNotFoundException:(没有这样的文件或目录) 实际上,该位置上存在该文件。应用程序帮助将文件上载到FTP服务器,文件abc.json就是动态文件的一个示例 请告知应用程序如何在容器中定位主机文件!非常感谢 Docker文件如下 # # Build stage # FROM maven:3

我是新来的码头工人。我在docker中运行了一个简单的Java应用程序。当应用程序试图找到主机路径为/mnt/share/abc.json的文件时,它将返回一个错误消息4:java.io.FileNotFoundException:(没有这样的文件或目录)

实际上,该位置上存在该文件。应用程序帮助将文件上载到FTP服务器,文件abc.json就是动态文件的一个示例

请告知应用程序如何在容器中定位主机文件!非常感谢

Docker文件如下

#
# Build stage
#
FROM maven:3.6.3-jdk-8 AS build
WORKDIR /home
COPY pom.xml .
RUN mvn dependency:go-offline

COPY src /home/src
RUN mvn -f /home/pom.xml clean package

#
# Package stage
#
FROM openjdk:8-jdk-alpine
COPY --from=build /home/target/*.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","/app.jar"]

/mnt/share/abc.json
是您的系统与Docker中的
/mnt/share/abc.json
不同。
您需要使用copy命令将文件复制到所需位置。即

COPY <file> <destination>
复制

有关详细信息,请尝试将abc.json文件添加到Dockerfile所在的位置。然后命令就是:

复制abc.json/myimagedir/

注意,/myimagedir必须在复制之前存在于映像中,以便复制成功。如果您的图像中还没有,您可以这样创建它:


运行mkdir/myimagedir

这是否回答了您的问题?请像pom.xml一样共享您的dockerfiledocker文件Shared,将此文件复制到您如何运行容器;您能否在问题中包含
docker run
命令或
docker compose.yml
文件?如果应用程序的主要目标是访问主机文件,那么在主机上的JVM中运行它并跳过这里的Docker可能会更容易。但它无法从Java程序中的./share/abc.json找到文件。
COPY <file> <destination>