spring-boot - 使用参数运行Docker镜像

标签 spring-boot docker dockerfile microservices docker-machine

我正在与docker镜像一起使用spring-boot。
我直接从 springboot 名称作为 IntelliJ 直接运行 runtime 应用程序,下面带有一些自变量
-DCONFIG_DIR=D:\baseapimanager\runtime\config
我能够成功运行它。
但是,通过创建docker镜像并运行该镜像,它无法运行。
由于我不知道如何在运行docker image时传递参数。
在这里,我也分享了我的Docker文件内容。

FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD target/docker-runtime.jar docker-runtime.jar
EXPOSE 8091
ENTRYPOINT ["java","-jar","docker-runtime.jar"]
并在docker命令下运行,我试图为它创建图像文件。
docker build -f Dockerfile -t docker-runtime .
之后,执行以下命令来运行此生成的图像文件。
docker run -p 8091:8091 docker-runtime
在没有通过该论点并用该论点评论业务的情况下,它就可以正常工作。
任何帮助将不胜感激。

最佳答案

如果CONFIG_DIR是您在Spring配置@Value@ConfigurationProperties中使用的参数,则也可以将该参数作为环境变量传递。
可以使用-e将环境变量传递到容器

docker run -p 8091:8091 -e CONFIG_DIR=D:\baseapimanager\runtime\config docker-runtime
但是由于D:\ baseapimanager \ runtime \ config看起来像Windows路径,在Docker容器内将不可见,因此您也必须将配置添加到Docker镜像中或安装Docker卷,并且参数必须指向该卷。

关于spring-boot - 使用参数运行Docker镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63057324/

相关文章:

java - MongoDB DBRef 列表在 Spring Boot 中返回 null

java - 从 Spring Boot 1 迁移到 Spring Boot 2 后的性能问题

apache-spark - 来自Docker的Ne​​o4j和Spark的ServiceUnavailableException

docker - 在 docker 容器中构建 Jenkins-job 后如何从 ROOT 所有权更改为 jenkins

Spring Vault Integration - 从多个路径读取 secret

java - 在 Spring Boot 中记录 : Log4j2 Implementation using log4j2. 属性文件

docker - Docker流利|无法将请求从主机转发到Docker守护程序

docker - Docker构建:使用http缓存

docker - 如何使用 vgo 和给定的 go.mod 下载所有依赖项?

docker - 如何在构建时在 docker-compose 中指定 $docker build --network ="host"模式