早上好,目前我有以下分布
在我的应用程序中,我有一个server.xml
<Realm className = "org.apache.catalina.realm.LockOutRealm">
<Realm className = "org.apache.catalina.realm.JDBCRealm" connectionURL = "jdbc: sqlserver: //xxxx.database.windows.net:1433; database = demo1; user = xxx @ xxx; password =` `; encrypt = true; trustServerCertificate = true; hostNameInCertificate = *. database.windows.net; loginTimeout = 30; " driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver" roleNameCol = "role" userCredCol = "password" userNameCol = "login" userRoleTable = "userRole" userTable = "v_login" />
</ Realm>
它引用了我的数据库,并由此建立了连接...。没关系。
但是我当时为每家银行使用一幅更改这些参数的图像,但是现在我只想拥有一张图像并在外部更改参数
我进行了大量搜索,但没有找到在外部(在deploy.yaml或service.yaml中)更改这些参数的方法
我需要你的帮助
答案 0 :(得分:0)
您可以在部署Yaml中传递命令行参数:.spec.template.spec.containers[0].args
。这是一个字符串数组,每个字符串都是可执行文件的命令行参数。
示例:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deployment
namespace: default
labels:
app: my-app
spec:
selector:
matchLabels:
app: my-app
replicas: 2
template:
metadata:
labels:
app: my-app
spec:
containers:
- image: my-image
name: my-app
args: [
"argument-1",
"argument-2"
]
答案 1 :(得分:0)
不要烘烤docker映像中的jdbc url。使用环境变量将其外部化。 Tomcat在server.xml中支持Java系统属性插值。您需要使用catalina_opts从环境变量设置java系统属性。
检查此帖子evironment/system variables in server.xml。
另一件事,使用configmap和/或密钥将环境变量设置为部署https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/#define-container-environment-variables-using-configmap-data