我有个 docker image (名为 seedllm),里面有 py310 / py311 两个 env
正常是: 手动跑命令,先 docker run -it 再 conda activate py310 最后 python3 -m run.py
现在要用 k8s 运行 docker,只能给一句命令
直接 conda env list 会报错 conda not found
$ sudo docker run -it seedllm /bin/bash -c "conda env list "
..
/bin/bash: line 1: conda: command not found反复调试会发现 sudo docker run -it seedllm /bin/bash -c "env | grep PATH" ,和手动登录的 env 不一样。
而手动登进去 env | grep PATH 是有 conda 的
在 host 里 bash -c "source ~/.bashrc" 不生效
$ sudo docker run -it seedllm /bin/bash -c "source ~/.bashrc && conda env list"
..
/bin/bash: line 1: conda: command not found直接 export PATH=/root/miniconda3/bin:PATH && conda init bash 也没有效果
$ sudo docker run -it seedllm /bin/bash -c "source ~/.bashrc && export PATH=/root/miniconda3/bin:$PATH && conda activate py310"
..
CondaError: Run 'conda init' before 'conda activate'$ sudo docker run -it seedllm /bin/bash -c "source ~/.bashrc && export PATH=/root/miniconda3/bin:$PATH && conda init bash && conda activate py310"
..
CondaError: Run 'conda init' before 'conda activate不用 conda activate 了,直接运行时指定 env,即 conda run -n py310 python3 --version
$ sudo docker run -it seedllm /bin/bash -c "source ~/.bashrc && export PATH=/root/miniconda3/bin:$PATH && conda run -n py310 python3 --version"
Python 3.10.14bash -ic ..
bash -xc ..

