转载

通过Dockerfile定义Spring Profile
通常在命令行中我们可以使用“java -jar” 运行 Spring Boot应用。
而Profiles信息可以作为额外参数传递,比如“-Dspring.profiles.active=dev”

java -Djava.security.egd=file:/dev/./urandom -Dspring.profiles.active=dev -jar rest-api.jar
相似的,我们可以在Dockerfile中将Profile的信息作为参数传递进去,例如:

FROM java:8
ADD target/my-api.jar rest-api.jar
RUN bash -c ‘touch /user-service.jar’
ENTRYPOINT [“java”, “-Djava.security.egd=file:/dev/./urandom”,"-Dspring.profiles.active=dev","-jar","/rest-api.jar"]
需要注意最后的ENTRYPOINT一行,在这行中我们传递java命令以执行jar文件,所有需要的参数和值以逗号方式分隔传递。
“-Dspring.profiles.active=dev” 是我们定义dev profile的地方,我们可以替换dev为任何需要的名字。

通过Docker run命令定义Spring Profile
可以将spring profile作为环境变量传递给docker run命令,使用 -e 标记。
例如 -e “SPRING_PROFILES_ACTIVE=dev”会将dev profile传递给Docker容器

docker run -d -p 8080:8080 -e “SPRING_PROFILES_ACTIVE=dev” --name rest-api dockerImage:latest
通过Docker Compose定义Spring Profile
如果基于DockerSwarm,或使用docker-compose.yml文件部署Docker镜像,Spring Profile可以通过docker-compose.yml文件的 environment 标签传递。
例如:


version: “3”
services:
rest-api:
image: rest-api:0.0.1
ports:
- “8080:8080”
environment:
- “SPRING_PROFILES_ACTIVE=dev”

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐