我的Dockerfile包含用于开发和测试场景的默认环境变量:
ENV mysql_host=mysql \
mysql_user=app \
mysql_password=password \
Run Code Online (Sandbox Code Playgroud)
我的k8s yaml包含一个env指令:
spec:
containers:
env:
- name: "mysql_password"
value: "someotherpassword"
name: "mysql_host"
value: "someotherhost"
name: "mysql_user"
value: "someotheruser"
Run Code Online (Sandbox Code Playgroud)
但当我执行到我的运行容器时
kubctl exec -it service -- /bin/bash
Run Code Online (Sandbox Code Playgroud)
我仍然将"密码"视为mysql_password.
编辑:从k8s yaml中添加更多以获得完整性.
小智 6
你需要以正确的yaml格式声明所有变量,所以在这个例子中mysql_password将覆盖变量,但mysql_password2不会覆盖,只有在未声明它时才会插入:
spec:
containers:
env:
- name: mysql_password
value: "someotherpassword"
name:mysql_password2
value: "password"
- name: override_password
value: password3
Run Code Online (Sandbox Code Playgroud)
意思是如果它以" - "开头,它将覆盖.否则它会将变量插入容器
| 归档时间: |
|
| 查看次数: |
2283 次 |
| 最近记录: |