gpt4 book ai didi

spring - 将环境变量传递给 DOCKER Spring Boot

转载 作者:IT老高 更新时间:2023-10-28 21:35:29 25 4
gpt4 key购买 nike

我有一个 SpringBoot 应用程序,它的 Dockerfile 如下。我有适用于不同环境的 application.properties,例如 local/dev/qa/prod。当我在 IDE 中本地运行应用程序时,我在 VM 选项中传递 -Dspring.profiles.active=local 以便它加载 application-local.properties。为了作为 docker 容器运行,我构建了一个包含所有 application.properties 的图像。即它只是所有环境的相同 docker 图像。

当我在环境中运行镜像时,我想以某种方式让 SpringBoot 了解它的开发环境,因此它必须加载 application-dev.properties。我正在使用 AWS ECS 来管理容器。

FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD target/sample-test-sb-sample-app-1.0-exec.jar app.jar
EXPOSE 8080
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]

最佳答案

通过 docker 容器中的环境变量实现此目的的最简单(也可能是最好的方法):

SPRING_PROFILES_ACTIVE=dev,swagger

更新:

为了给docker设置环境变量,你不需要修改Dockerfile。只需构建您的 docker 镜像,然后使用设置的 env 变量运行它:

docker run your-docker-container -e SPRING_PROFILES_ACTIVE='dev,swagger' -p 8080:8080

关于spring - 将环境变量传递给 DOCKER Spring Boot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46715072/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com