【发布时间】:2018-10-29 15:33:51
【问题描述】:
我有一个基于 openjdk:8-jre-alpine 基础镜像的 docker 镜像。我使用java -jar ... 在容器内执行一个war 文件。我的战争文件服务于一个 Web 应用程序,我的战争文件 conf.json 中有一个文件,其中我有一些配置设置。我想根据docker容器的环境变量修改一些配置。
例如,我有一个"gateway_url":"some_url" 的字段,我需要将其更改为"gateway_url":"${gateway_url}"。如果这个配置文件不在war文件中,我会简单地执行类似
awk -v val="$gateway_url" '{gsub("some_url",val);print}' > conf.json
在我的入口点脚本中编辑conf.json 文件。在这种情况下,我无法直接访问配置文件,因为它位于 war 文件中。
我该如何解决这个问题?
约束
我不想在我的容器中使用jar 实用程序来更新war 文件中的文件,因为它大大增加了我的容器的大小(默认情况下它不存在,并且随整个JDK 安装一起提供)。
【问题讨论】:
标签: bash docker environment-variables war