我正在构建一个 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"]
Run Code Online (Sandbox Code Playgroud)
当启动容器时,我运行这个,
docker run -d -v /home/user/config:/app/config myapp:latest
Run Code Online (Sandbox Code Playgroud)
其中/home/user/config包含application.properties我希望在运行时获取 jar 文件。
然而这不起作用,应用程序运行不会获取此安装的属性文件,它使用 jar 内打包的默认属性文件。但是,当我exec进入已启动的容器并再次手动运行入口点 cmd 时,它会通过拾取我挂载的文件按预期工作。所以我想知道这是否与挂载如何与入口点一起工作有关?或者我只是没有为这种情况正确编写 Dockerfile?