首页 > 解决方案 > 如何在部署 Azure Kubernetes 服务期间修改默认 docker 基础映像

问题描述

我一直在使用 DEFAULT_GPU_IMAGE 作为 Azure ML 中的基础映像,但现在它 ImportError: libGL.so.1: cannot open shared object file: No such file or directory在导入 opencv 时开始抛出错误。stackoverflow 上的一些答案说我需要在图像上运行 apt-get update 。具体来说:

RUN apt-get update ##[edited] 
RUN apt-get install 'ffmpeg'\
'libsm6'\ 
'libxext6'  -y

您知道我在哪里可以找到要添加行的 docker 文件,还是有办法在部署 AKS 服务期间修补映像?(与部署期间可以安装 pip 和 conda 包的方式相同)

标签: azuredockeropencvkubernetesazureml

解决方案


AzureML 容器的基础镜像可以在这个github项目中找到。此页面还包含图像的详细文档。

或者,您可以使用“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 \
...

推荐阅读