环境变量名称中的连字符 and/or 句点导致问题
Hyphen and/or period in environment variable name is causing issue
这是有效的。
oc new-app --docker-image=docker.mycompany.com/myusername/my-imagestuff:latest -e SPRING_DATASOURCE_URL="jdbc:sqlserver://blahblahblah;” -e SPRING_DATASOURCE_USERNAME=“myUserName1” -e SPRING_DATASOURCE_PASSWORD=“MyP#ssword” -e
所以我回去添加了数据源类名
oc new-app --docker-image=docker.mycompany.com/myusername/my-imagestuff:latest -e SPRING_DATASOURCE_URL="jdbc:sqlserver://blahblahblah;” -e SPRING_DATASOURCE_USERNAME=“myUserName1” -e SPRING_DATASOURCE_PASSWORD=“MyP#ssword” -e SPRING_DATASOURCE_DRIVER-CLASS-NAME="com.microsoft.sqlserver.jdbc.SQLServerDriver"
现在我的部署失败并出现此错误:
error: invalid parameter assignment in
"SPRING_DATASOURCE_DRIVER-CLASS-NAME=com.microsoft.sqlserver.jdbc.SQLServerDriver"
连字符/连字符的神奇调味料是什么and/or环境变量和值中的点/点
?
谢谢!
无奈之下,我将连字符改为下划线。
注意 SPRING_DATASOURCE_DRIVER_CLASS_NAME
的最后一个参数
oc new-app --docker-image=docker.mycompany.com/myusername/my-imagestuff:latest -e SPRING_DATASOURCE_URL="jdbc:sqlserver://blahblahblah;” -e SPRING_DATASOURCE_USERNAME=“myUserName1” -e SPRING_DATASOURCE_PASSWORD=“MyP#ssword” -e SPRING_DATASOURCE_DRIVER_CLASS_NAME="com.microsoft.sqlserver.jdbc.SQLServerDriver"
而且我的应用程序正在运行。所以我写下这个答案。
我不明白这个巫术。
如果有人能解释一下,我将不胜感激。
您无法使用包含连字符或句点的环境变量,因为这些字符在 shell 变量名称中无效:
➜ tmp.0ngsgXro foo.bar=1
zsh: command not found: foo.bar=1
➜ tmp.0ngsgXro foo-bar=1
zsh: command not found: foo-bar=1
➜ tmp.0ngsgXro foo_bar=1
➜ tmp.0ngsgXro echo $foo_bar
1
您正试图在您的容器中创建一个违反底层规则的环境变量 shell。
这是有效的。
oc new-app --docker-image=docker.mycompany.com/myusername/my-imagestuff:latest -e SPRING_DATASOURCE_URL="jdbc:sqlserver://blahblahblah;” -e SPRING_DATASOURCE_USERNAME=“myUserName1” -e SPRING_DATASOURCE_PASSWORD=“MyP#ssword” -e
所以我回去添加了数据源类名
oc new-app --docker-image=docker.mycompany.com/myusername/my-imagestuff:latest -e SPRING_DATASOURCE_URL="jdbc:sqlserver://blahblahblah;” -e SPRING_DATASOURCE_USERNAME=“myUserName1” -e SPRING_DATASOURCE_PASSWORD=“MyP#ssword” -e SPRING_DATASOURCE_DRIVER-CLASS-NAME="com.microsoft.sqlserver.jdbc.SQLServerDriver"
现在我的部署失败并出现此错误:
error: invalid parameter assignment in "SPRING_DATASOURCE_DRIVER-CLASS-NAME=com.microsoft.sqlserver.jdbc.SQLServerDriver"
连字符/连字符的神奇调味料是什么and/or环境变量和值中的点/点 ?
谢谢!
无奈之下,我将连字符改为下划线。
注意 SPRING_DATASOURCE_DRIVER_CLASS_NAME
的最后一个参数oc new-app --docker-image=docker.mycompany.com/myusername/my-imagestuff:latest -e SPRING_DATASOURCE_URL="jdbc:sqlserver://blahblahblah;” -e SPRING_DATASOURCE_USERNAME=“myUserName1” -e SPRING_DATASOURCE_PASSWORD=“MyP#ssword” -e SPRING_DATASOURCE_DRIVER_CLASS_NAME="com.microsoft.sqlserver.jdbc.SQLServerDriver"
而且我的应用程序正在运行。所以我写下这个答案。
我不明白这个巫术。
如果有人能解释一下,我将不胜感激。
您无法使用包含连字符或句点的环境变量,因为这些字符在 shell 变量名称中无效:
➜ tmp.0ngsgXro foo.bar=1
zsh: command not found: foo.bar=1
➜ tmp.0ngsgXro foo-bar=1
zsh: command not found: foo-bar=1
➜ tmp.0ngsgXro foo_bar=1
➜ tmp.0ngsgXro echo $foo_bar
1
您正试图在您的容器中创建一个违反底层规则的环境变量 shell。