gpt4 book ai didi

docker - kubernetes 不会覆盖在 Dockerfile 中设置的环境变量

转载 作者:行者123 更新时间:2023-12-02 11:31:05 28 4
gpt4 key购买 nike

我的 Dockerfile 包含用于开发和测试场景的默认环境变量:

ENV mysql_host=mysql \
mysql_user=app \
mysql_password=password \

我的 k8s yaml 包含一个 env 指令:
spec:
containers:
env:
- name: "mysql_password"
value: "someotherpassword"
name: "mysql_host"
value: "someotherhost"
name: "mysql_user"
value: "someotheruser"

但是当我执行到我正在运行的容器时
kubctl exec -it service -- /bin/bash

我仍然看到“密码”为 mysql_password 。

编辑:为了完整起见,从 k8s yaml 添加了更多内容。

最佳答案

您需要以正确的 yaml 格式声明所有变量
所以在这个例子中 mysql_password 将覆盖变量但 mysql_password2 不会覆盖并且只有在它尚未声明时才会插入:

spec:
containers:
env:
- name: mysql_password
value: "someotherpassword"
- name: mysql_password2
value: "password"
- name: override_password
value: password3
意思是如果它以“-”开头,它将覆盖 .否则它会将变量插入到容器中

关于docker - kubernetes 不会覆盖在 Dockerfile 中设置的环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45075475/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com