Docker的安装发生在入口点执行之前或之后

我正在构build一个Docker镜像来运行我的基于Spring Boot的应用程序。 我想让用户能够通过将包含application.properties的文件夹挂载到容器中来提供运行时属性文件。 这是我的Dockerfile,

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 

其中/home/user/config包含application.properties我希望jar文件在运行时获取。

然而,这不起作用,应用程序运行不会拿起这个挂载的属性文件,它使用在jar中打包的默认的文件。 但是,当我进入启动容器并手动运行入口cmd再次,它按照预期通过拿起我登上的文件。因此,我想知道这是什么有关如何挂载与入口工作? 或者我只是没有正确写Dockerfile的这种情况?

Spring Boot 在当前目录的一个/config子目录(在其他位置) search application.properties 。 在你的情况下,当前目录是/ (docker默认),所以你需要改变它/app 。 为此,请添加

 WORKDIR /app 

ENTRYPOINT行之前。


并回答你原来的问题:安装在容器内的任何东西运行之前完成。