本文以Spring Boot为,如图,有三个配置文件,分别应用于不同的环境,通常情况下,部署该应用可以使用“java -jar demo.jar --springboot.profiles.active=dev”来选择不同的配置文件,那么当使用Docker方式部署时,应该如何在启动时选择配置文件呢?

1. Dockerfile

FROM openjdk:8-jdk-alpine
RUN mkdir -p /app/demo/
COPY demo.jar /app/demo/
RUN touch /app/demo/demo.jar\
&& apk add --update ttf-dejavu fontconfig
ENV JAVA_OPTS="-Xms128m -Xmx256m"
#默认使用 dev
ENV ACTIVE="dev"
#使用 shell 处理
ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -jar -Duser.timezone=GMT+8 /app/demo/demo.jar --spring.profiles.active=$ACTIVE"]

2. 制作docker镜像

docker build -t demo:1.0 .

3. 启动镜像

docker run -e ACTIVE="prod" -d -p 9002:9002 demo:1.0

4. 启动时给容器命名

docker run -e ACTIVE="prod" -d -p 9002:9002 --name=demo demo:1.0

--name: 指定容器名称

-e:设置环境变量

-p:指定端口映射,格式为:主机(宿主)端口:容器端口

-d:指定容器后台运行

 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐