我有一个简单的 spring-boot 项目:
-resources
-application.yaml
-application-test.yaml
我有这个 Dockerfile
:
FROM openjdk:8-jdk-alpine
EXPOSE 8080
ADD micro-boot.jar micro-boot.jar
ENTRYPOINT ["java","-Dspring.profiles.active=test" "-jar","/micro-boot.jar"]
1) 我构建镜像 - C:\micro-boot>docker build -f Dockerfile -t micro-boot .
2) 显示所有镜像 - C:\micro-boot>docker image ls -a
micro-boot latest ccc9a75ebc24 4 seconds ago 112MB
3) 尝试启动C:\micro-boot>docker image ls -a
我得到一个错误:
/bin/sh: [java,-Dspring.profiles.active=test: not found
最佳答案
我们有3种方式:
<强>1。在 Dockerfile 中传递 Spring Profile
FROM openjdk:8-jre-alpine
...
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom","-Dspring.profiles.active=test","-jar","app.jar"]
<强>2。在 Docker 运行中传递 Spring Profile
docker run -d -p 8080:8080 -e "SPRING_PROFILES_ACTIVE=test" --name my-app:latest
<强>3。在 DockerCompose 中传递 Spring Profile
version: "3.5"
services:
my-app:
image: my-app:latest
ports:
- "8080:8080"
environment:
- "SPRING_PROFILES_ACTIVE=test"
关于java - 如何使用配置文件在 docker 中启动 spring boot 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55752013/