如何将 application.properties 传递给 Docker 容器中的 Spring Boot 应用程序?
How to pass application.properties to SpringBoot app in Docker container?
假设我们有一个简单的 Dockerfile
,其中 my_sb_app.jar
是一个 SpringBoot 应用程序:
FROM bellsoft/liberica-openjdk-alpine:11.0.9-12
WORKDIR /app
COPY target/my_sb_app.jar /app
EXPOSE 8080
ENTRYPOINT java -jar my_sb_app.jar
我想在每个 运行
上传递自定义 app.properties
docker run my_image_name /somewhere/on/my/host/app.properties
所以预期的最终命令(在容器内)可能与以下相同
java -jar my_sb_app.jar --spring.config.location=%%file_with_contents_of_app.properties%%
将文件传递到 Docker 容器的标准方法是什么?
Docker 图像应该如何改变?
将文件从主机传递到容器的标准方法是使用卷:
https://docs.docker.com/storage/bind-mounts/
https://docs.docker.com/storage/volumes/
在你的例子中:
docker run -v /somewhere/on/my/host/app.properties:/opt/app.properties my_image_name
java -jar my_sb_app.jar --spring.config.location=/opt/app.properties
假设我们有一个简单的 Dockerfile
,其中 my_sb_app.jar
是一个 SpringBoot 应用程序:
FROM bellsoft/liberica-openjdk-alpine:11.0.9-12
WORKDIR /app
COPY target/my_sb_app.jar /app
EXPOSE 8080
ENTRYPOINT java -jar my_sb_app.jar
我想在每个 运行
上传递自定义app.properties
docker run my_image_name /somewhere/on/my/host/app.properties
所以预期的最终命令(在容器内)可能与以下相同
java -jar my_sb_app.jar --spring.config.location=%%file_with_contents_of_app.properties%%
将文件传递到 Docker 容器的标准方法是什么?
Docker 图像应该如何改变?
将文件从主机传递到容器的标准方法是使用卷:
https://docs.docker.com/storage/bind-mounts/
https://docs.docker.com/storage/volumes/
在你的例子中:
docker run -v /somewhere/on/my/host/app.properties:/opt/app.properties my_image_name
java -jar my_sb_app.jar --spring.config.location=/opt/app.properties