Docker 安装卷无法正常工作

Docker mount volumes is not working properly

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

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

但是,卷没有绑定,spring 图像不是 运行ning。

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 --name message docker-fts.rep01.frauscher.intern/message-filter:latest

我从 spring 容器收到以下消息:

log4j2.xml must be available under /opt/frauscher/message-filter/etc/log4j2.xml application.properties must be available under /opt/frauscher/message-filter/etc/application.properties

请帮忙

这是我用于我的 spring 应用程序的 Dockerfile,希望使用这种方法你可以 运行 你的应用程序在 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.jarapplication.propertiesog4j2.xml 应与 Dockerfile

位于同一文件夹中

你可以运行docker build .docker run <image>启动容器

注意:我正在使用 docker-compose 来编排多种服务,例如网络、数据库等...此 docker 文件是从我的 docker 中提取的草稿-撰写配置并根据您的需要进行修改(希望如此)

感谢您的解答。最后,我想通了。 docker 无法装载卷,因为我们是 运行 容器内的另一个容器,任何卷都装载在第一个容器上。我尝试将文件复制到新容器。它按预期工作。