openpai 和 k8s

目前实验室众人在搭建 k8s,因为没有涉及 k8s 源码,所以可以看做原生的 k8s。除此之外,实验室还在用 openpai 平台(微软开发的,功能比较完善)。不过最近发现这两种方式对镜像的处理有区别,主要体现在环境变量上:

以下面这些环境变量为例,

FROM nvidia/cuda:10.0-cudnn7-devel-ubuntu18.04

SHELL ["/bin/bash", "-c"]

WORKDIR /root/

ENV DEBIAN_FRONTEND noninteractive
ENV LC_ALL C.UTF-8
ENV LANG C.UTF-8

RUN mkdir test

ENV LD_LIBRARY_PATH $LD_LIBRARY_PATH:/root/.mujoco/mujoco210/bin
ENV PATH $PATH:/root/.mujoco/mujoco210/bin

ENV WORKON_HOME /root/.virtualenvs
ENV VIRTUALENVWRAPPER_VIRTUALENV /usr/local/bin/virtualenv
ENV VIRTUALENVWRAPPER_PYTHON /usr/bin/python3.7

对于原生 k8s,创建容器后,dockerfile 中所有使用 ENV 声明的环境变量都是可以正常使用的,但是使用如果把变量写在 .bashrc 或者 .zshrc 中则无效,即使使用 source .zshrc 也不行。(注意,这里的提到的正常使用和无效都是针对任务 yaml 中的命令,如果 ssh 或者 kubectl exec 进入容器则不存在这个问题)

对于 openpai,上面的环境变量只有 LD_LIBRARY_PATH 和 PATH 会生效,其他全部无效,但是使用如果把变量写在 .bashrc 或者 .zshrc 中则有效。推测是,openpai 修改了 k8s 源码,对镜像层进行了过滤,删除了非标准环境变量的层。

所以建议,环境变量既用 ENV 声明,又写入 .bashrc 或者 .zshrc 中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值