当前位置: 首页 > 知识库问答 >
问题:

Docker挂载发生在入口点执行之前或之后

公孙宏畅
2023-03-14
FROM java:8

RUN mkdir /app
RUN mkdir /app/config
ADD myapp.jar /app/

ENTRYPOINT ["java","-jar","/app/myapp.jar"]
docker run -d -v /home/user/config:/app/config myapp:latest

然而,这并不起作用,应用程序运行并不拾取这个挂载的属性文件,它使用的是封装在jar中的默认属性文件。但是当我exec进入已启动的容器并再次手动运行entrypoint cmd时,它通过拾取我挂载的文件而按预期工作。所以我想知道这是不是与mount如何使用entrypoint相关?或者我只是没有为这个案例正确地编写Dockerfile?

共有1个答案

韦宏扬
2023-03-14

Spring Boot在当前目录的/config子目录(以及其他位置)中搜索application.properties。在您的示例中,当前目录是/docker默认目录),因此需要将其更改为/app。为此,添加

WORKDIR /app

entrypoint行之前。

并且回答您最初的问题:在运行容器内的任何内容之前完成挂载。

 类似资料:
  • 我有以下DockerFile: 这是什么意思:switch的值丢失了,我如何运行它?谢谢你的帮助 更新 请参阅此处:docker ASP.NET核心容器在mysql容器之后启动以获取更多信息。很抱歉有类似的第二个线程。请删除此线程

  • 我试图让我的docker db容器在创建时自动用数据集填充数据库。根据mariadb留档,卷中有一个文件夹可用于此目的。 我设置了我的文件来镜像我在StackOverflow上找到的示例,但是仍然无法执行我的SQL脚本。以下是我的文件的相关部分: 在文件,我有一个文件: 在每次测试迭代之前,我会清理所有旧的/缓存的Docker内容: 我发现这实际上并没有删除数据库卷。运行仍会显示过去存在的卷 Do

  • 问题内容: 所述javax.servlet.Filter的对象可以用于认证使用二者(其中过滤器需要赶上请求需要做任何servlet工作需要之前)和XSLT转换(其中的servlet需要是完全完成生成的内容)。它什么时候真正执行? 我知道这是依赖于实现的(在Web容器上),但这似乎是所有问题都需要解决的问题。 也许在某个地方为每个向Web容器注册的过滤器设置了一个配置选项? 额外: 另外,什么决定了

  • 如果你希望在每次运行 Puppet 之前执行命令,可以在配置文件中使用 prerun_command 配置。 类似地,你也可以使用 postrun_command 配置运行 Puppet 之后需要执行的命令。 这种机制为 Puppet 与其他软件的集成提供了强大的钩子,甚至可以触发其他机器上的事件。 prerun 和 postrun 命令必须能成功运行(即其返回的状态码为 0),否则 Puppet

  • 请帮助理解ExecutorService#AwaitTermination(timeout)行为。 当我的代码中有: 在本例中,pool中的任务是否在同一线程中shutdownAndAwaitTermination()之后的任何其他调用之前完成? 看看在生产过程中发生的事情,我相信答案是否定的,但我只想了解如何确保在调用shutdownAndAwaitTermination()后放置的任何代码将在

  • 问题内容: 在Firefox 3和Google Chrome 8.0中,以下功能可以正常运行: 但是当元素为时不是这样: 为什么它不按我的预期工作? 问题答案: 使用和指定要在该元素内部 的内容 之前(或之后)插入 的内容 。元素没有内容。 例如,如果你写的(这是错误的),浏览器会纠正这一点,并把文字 后 输入元素。 您唯一可以做的就是将每个输入元素包装在span或div中,然后将CSS应用于这些