问题描述
我一直使用DEFAULT_GPU_IMAGE作为Azure ML中的基本映像,但是现在它开始抛出
导入opencv时发生ImportError: libGL.so.1: cannot open shared object file: No such file or directory
错误。
关于stackoverflow的一些答案说我需要在映像上运行apt-get update。具体来说:
RUN apt-get update ##[edited]
RUN apt-get install 'ffmpeg'\
'libsm6'\
'libxext6' -y
您是否知道我在哪里可以找到将文件行添加到的docker文件,或者是否可以在部署AKS服务期间对映像进行修补? (在部署过程中可以与pip和conda软件包安装方式相同)
解决方法
在此github项目中可以找到AzureML容器的基本图像。 此页面还包含有关图像的详细文档。
或者,您也可以使用“ docker inspect”来获取图像的详细信息。
例如:docker inspect mcr.microsoft.com/azureml/base-gpu:latest
然后在像dockerfile这样的基本映像中,只需添加所需的软件包以及如下所示的其他依赖项即可:
# custom packages <------
apt-get install -y \
ffmpeg \
libsm6 \
libxext6 && \
# Install Common Dependencies
RUN apt-get update && \
apt-get install -y --no-install-recommends \
# SSH and RDMA
libmlx4-1 \
libmlx5-1 \
librdmacm1 \
libibverbs1 \
libmthca1 \
libdapl2 \
dapl2-utils \
openssh-client \
openssh-server \
iproute2 && \
# custom packages <------
apt-get install -y \
ffmpeg \
libsm6 \
libxext6 && \
# Others
apt-get install -y \
build-essential \
...