azure - 如何在部署 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 包的方式相同)
解决方案
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 \
...
推荐阅读
- c++ - Replacement-List 宏函数 [问题]
- vue.js - 如何在 vue-storefront 中添加自定义自定义产品过滤器
- verilog - xilinix vivado:使用 Verilog/VHDL 属性标签推断 FREQ_HZ
- c - 检查单词是否与搜索词匹配的函数
- kubernetes - How to update nginx-ingress controller so that latest ingress paths are used?
- python - 不推荐使用 __int__ 隐式转换为整数,并且可能会在 Python 的未来版本中删除
- flutter - Flutter SSO Okta 集成示例
- javascript - React中多个键的事件监听器?
- css - position:absolute 的解决方法,因为它不适用于 Gmail 等电子邮件阅读器
- visual-studio-code - vs 代码:令人难以置信的延迟终端(在 Mac 上)