背景:有个用户需要使用指定版本的系统版本+python版本去启动模型服务。比如要求如下: ubuntu20.04 + python3.12.5 + 特定依赖python包文件 vllm-requirements.txt + cuda 12.0
整体思路: 1.去docker hub 需要nvidia提供的基础cuda版本容器, 这里是: nvidia/cuda:12.0.0-devel-ubuntu20.04 2. 基于基础镜像启动容器,安装要求的python版本和其他服务 3. 容器保存为新镜像,并推送到私有镜像仓库或者打包发到环境中使用
命令记录:
启动容器:docker run --name cuda-test -it -d nvidia/cuda:12.0.0-devel-ubuntu20.04
进入容器执行依赖安装:
docker exec -it cuda-test bash
apt update
apt install atop -y
#编译安装python3.12.5
apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libsqlite3-dev libreadline-dev libffi-dev curl libbz2-dev -y
apt-get install wget vim -y
wget https://www.python.org/ftp/python/3.12.5/Python-3.12.5.tgz
tar -xf Python-3.12.5.tgz
cd Python-3.12.5
./configure --enable-optimizations
make -j 2
make altinstall
ln -s /usr/local/bin/pip3.12 /usr/local/bin/pip
ln -s /usr/local/bin/python3.12 /usr/local/bin/python
ln -s /usr/local/bin/python3.12 /usr/local/bin/python3
# python依赖包安装
pip3.12 install -r vllm_requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple (这里requirements由用户提供)
退出容器,保存成镜像:
docker commit cuda-test cuda:22.04-py3.12.5-pipinstall
镜像导出tar文件:
docker save -o cuda-12.0.0-devel-ubuntu-2204-pip-install.tar cuda:22.04-py3.12.5-pipinstall