9-docker、dockerfile配置springboot多环境启动,亲测

方法1 dockerfile方式

1 编写dockerfile文件(方法1)

FROM openjdk:11.0.3-jdk-stretch
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' >/etc/timezone
VOLUME /tmp
ADD target/device-manager.jar app.jar
# spring.profiles.active指定启动环境
#-c为清除以前启动的数据
#方法1
ENTRYPOINT ["java","-jar","/app.jar","--spring.profiles.active=${profiles}","-c"]
#web端口
EXPOSE 8083

2 构建镜像

docker build -t  test-profiles .

3 docker启动命令传值(pre环境)覆盖springboot项目默认配置环境(local)

docker run -e "profiles=pre" -it --rm test-profiles
或者
docker run -e profiles="pre" -it --rm test-profiles

我springboot项目的application配置如下,默认配置环境(local)

spring:
  application:
    name: device-manager
  profiles:
    active: local

ok=================

方法2,更简便:ENTRYPOINT 里不指定接收的环境变量,直接在docker运行时指定环境就行

或者
#方法2,这里不写spring.profiles.active,,
#ENTRYPOINT ["java","-jar","/app.jar","-c"]
docker运行命令如:
docker run -e "spring.profiles.active=prod" -it --rm pp
或者
docker run -e "SPRING_PROFILES_ACTIVE=prod" -it --rm pp
spring.profiles.active 和 SPRING_PROFILES_ACTIVE 是springboot识别的环境变量
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。