我有一个休息api,其中我有azure的数据库以及带有docker + kubernetes的应用程序,很好。
我有10个以上的客户端,每个客户端都拥有一个数据库,我不想为每个客户端都拥有一个docker映像,而只想拥有一个基本映像,其中每个客户端都具有一个连接字符串,建议的解决方案是 setenv.sh 进行连接
setenv.sh
#!/bin/bash
dbuser="xxx@iafox"
dbpassword="mypassword"
dbconnectstring="jdbc:sqlserver://xxx.database.windows.net:1433;database=ts-demo1;user=xxx@iafox;password=mypassword;encrypt=true;trustServerCertificate=true;hostNameInCertificate=*.database.windows.net;loginTimeout=30;"
dburl="jdbc:sqlserver://xxx.database.windows.net:1433;database=ts-demo1;"
export CATALINA_OPTS=" ${SYSTEM_PROPS} -Ddbuser='${dbuser}' -Ddbpassword=${dbpassword} -Ddbconnectstring='${dbconnectstring}' -Ddburl='${dburl}'"
server.xml
<Realm className="org.apache.catalina.realm.JDBCRealm" connectionURL="${dbconnectstring}" driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver" roleNameCol="role" userCredCol="password" userNameCol="login" userRoleTable="userRole" userTable="v_login"/>
直到一切正常。但是现在我不知道下一步,如果我创建的每个 setenv 都在kubernetes中有一个 configmap ,或者我是否在其中有所有连接字符串。相同的 setenv ...。我希望对此有所帮助
答案 0 :(得分:1)
您可以根据here中的说明,从一个configMap
设置多个环境变量。
但是我建议将密码和带有敏感信息的连接字符串存储在secret
中。
您可以reference Kubernetes secrets in a similar way设置容器的环境变量。