Docker装载卷工作不正常

Docker装载卷工作不正常,docker,docker-volume,Docker,Docker Volume,我有spring应用程序映像,它需要属性文件才能成功运行 我已经启动了一个jdk容器,并将属性文件复制到其中。现在,我尝试运行spring imag(来自jdk容器),并将属性文件作为卷绑定装载到新容器 但是,卷未绑定,spring映像未运行 我使用的Docker命令如下所示: docker-run-d-v/workspace/e2e-tests/resources/log4j2.xml:/opt/frauscher/message-filter/etc/log4j2.xml-v/workspa

我有spring应用程序映像,它需要属性文件才能成功运行

我已经启动了一个jdk容器,并将属性文件复制到其中。现在,我尝试运行spring imag(来自jdk容器),并将属性文件作为卷绑定装载到新容器

但是,卷未绑定,spring映像未运行

我使用的Docker命令如下所示:

docker-run-d-v/workspace/e2e-tests/resources/log4j2.xml:/opt/frauscher/message-filter/etc/log4j2.xml-v/workspace/e2e-tests/resources/message-filter-application.properties:/opt/frauscher/message-filter/etc/application.properties——名称message docker-fts.rep01.frauscher.intern/message-filter:latest

我从spring container收到以下消息:

log4j2.xml必须在/opt/frauscher/message filter/etc/log4j2.xml下可用
application.properties必须在/opt/frauscher/message filter/etc/application.properties下可用


请帮忙

这是我在spring应用程序中使用的docker文件,希望使用此方法,您可以在docker中运行应用程序,或者可以锁定问题 如果这不是您想要阅读的解决方案,请告诉我,我将修改或删除此答案

FROM openjdk:8

WORKDIR opt

ADD app-0.0.1-SNAPSHOT.jar app.jar
ADD application.properties application.properties
ADD log4j2.xml log4j2.xml
EXPOSE 8080 

ENTRYPOINT ["java", "-jar", "app.jar"]
所有文件
app-0.0.1-SNAPSHOT.jar
application.properties
og4j2.xml
应与
Dockerfile
位于同一文件夹中

您可以运行
docker build.
docker run
来启动容器


注意:我使用docker compose来编排多个服务,如web、数据库等。。。此docker文件是从我的docker compose配置中提取的草稿,并根据您的需要进行修改(希望如此)

谢谢您的回答。我终于明白了。docker无法装载卷,因为我们正在另一个容器中运行容器,并且在第一个容器上装载了任何卷。我尝试将文件复制到新容器中。它按预期工作。

可能是权限问题?检查文件权限。通常工作区文件夹不在根目录中,例如
/
您确定这是完整的路径吗?我建议使用Dockerfile而不是cmd linemaybe related:@FranCruz文件权限为“rwxr--r--”。它只能由创建的用户写入。您认为这可能是@shahaf工作区路径正确的原因吗。我已经在jdk容器中创建了这个工作区文件夹。看起来您已经将属性文件添加到了映像中。我不想将属性文件添加到图像中。我希望将属性文件装入运行映像的spring boot容器中。因此,要从容器外部添加属性文件夹,您没有使用卷吗?你创建了另一个容器?你能展示一下你是如何将两者联系起来的吗。