前端容器化部署自定义后台配置 以及war包集成 apollo

本文介绍了前端容器化部署的解决方案,通过环境变量在Dockerfile中动态替换API地址,实现同一镜像在不同环境的部署。同时,详细讨论了在WAR包配置Apollo时遇到的问题及解决方法,强调了APP_ID需配置在System Property中,通过在Tomcat的setenv.sh文件设置,以确保在多个环境中使用同一个镜像时仍能正确获取配置。
摘要由CSDN通过智能技术生成

前置需求

需要熟悉 docker的 env-file

如下的配置:(文件名:yspt.evn)

环境变量 部署在不同的环境需要配置不同的变量

YSGL_API_URL=xxx
DRUG_API_URL=xxxx

apollo 配置

APP_ID=dsp-ysgl
APOLLO_META=http://XXX​​​​​​:8080
ENV=dev
这里配置一些需要的变量,然后运行docker是 执行 如下,指定env文件 然后容器内部就可以使用这些变量

docker run -d —name=$ctname -p $port:$iport —env-file $evnfile $imgname:$imgtag

1.前端容器化部署时支持同一个镜像部署在多个环境

前端容器化部署时,由于api地址已经在生成的文件中,不同的环境需要打成不同的包然后部署在镜像中,造成同一份代码有多个镜像

解决办法 :启动容器是配置环境变量 比如 YSGL_API_URL=https://sample.zwjk.com/dsp/

然后在 Dockerfile中执行下面的命令替换url,(需要使用CMD命令执行,CMD命令只有一个能生效 多个命令使用 && 连接 ,详细的查看后面的完整脚本)

sed -i “s,YSGL_API_URL,$YSGL_API_URL,g” /usr/local/tomcat/webapps//static/js/.js \
这样在启动tomcat时会替换设置的api路径 达到只需要一个镜像部署在不同的环境

war包配置apollo 支持不同的环境使用同一个镜像方法(对应的apollo是同一个,环境也是同一个,app.id不同的情况)

apollo官网描述appid 如下:

因为如果appid不同,那么appid就不能配置在properties文件中,只能配置在stem Property或者System Environment(环境变量) 使用env-file 配置,APOLLO_META和ENV=dev生效了,但是APP_ID=dsp-ysgl没有生效,提测错误如下

app.id is not available from System Property and /META-INF/app.properties. It is set to null,

大致是说从 System Property和 properties中没有获取到配置,因此可能没有从System Environment(环境变量)中取值,所以只能配置在

System Pro

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值