Kubernetes documentation仅包括新环境变量的示例。
当我尝试扩展现有的环境变量PATH时,这种方法不起作用:
kind: Pod
apiVersion: v1
spec:
containers:
- name: blah
image: blah
env:
- name: PATH
value: "$PATH:/usr/local/nvidia/bin"
创建的pod随着
而崩溃BackOff Back-off restarting failed container
FailedSync Error syncing pod
关于如何扩展PATH环境变量的任何建议?
答案 0 :(得分:2)
如果您只需要运行该命令的此路径声明,则可以将其添加到containers
args
部分
示例:
spec:
containers:
- name: blah
image: blah
args:
- PATH="$PATH:/usr/local/nvidia/bin" blah
如果你的yaml中没有指定args,你可能在Dockerfile中指定了一个CMD,它将自动运行你的容器。因此,您可以将以下内容添加到Dockerfile中。
CMD ["PATH=$PATH:/usr/local/nvidia/bin", "blah"]
如果您希望将其放在容器中,则必须在您正在使用的容器中添加用户的.profile或.bashrc文件。这可能涉及创建一个新图像,其中包含这些新文件。
答案 1 :(得分:1)
如果您希望环境变量PATH可以为容器启动程序使用附加目录进行更新,甚至当您希望使用kubectl exec进入容器时,也可以像下面这样更新清单命令参数
<net.opacapp.multilinecollapsingtoolbar.CollapsingToolbarLayout
android:id="@+id/collapseToolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:expandedTitleMarginStart="20dp"
app:collapsedTitleTextAppearance="@style/AppTheme.Toolbar.Title"
app:expandedTitleTextAppearance="@style/AppTheme.Toolbar.Title"
app:maxLines="3"
app:title="Example Title"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
然后您可以确保将二进制文件放入$ HOME / bin或$ HOME / local / bin目录中。如果您进入bash环境并进行检查,应该可以看到$ HOME / bin或$ HOME / local / bin目录现在是PATH环境变量的一部分
答案 2 :(得分:0)
在pod启动之前,最终的环境变量是未知的,因此Kubernetes不能附加值不可预测的字符串。
实际上,docker会重置环境变量,并最终添加自己的变量。
您可以做的是修改您的入口点,以便您可以处理准备执行的环境。