创建 docker 文件安装 python with sklearn 和 pandas 可以在 sagemaker 上使用

Creating docker file which installs python with sklearn and pandas that can be used on sagemaker

我对 docker 很陌生。简而言之,我的问题是创建一个 docker 文件,其中包含 python with sklearn 和 pandas 可以在 aws sagemaker 上使用。

我当前的 docker 文件如下所示:

FROM jupyter/scipy-notebook

RUN pip3 install sagemaker-training

COPY train.py /opt/ml/code/train.py

ENV SAGEMAKER_PROGRAM train.py

然而,当我尝试创建此图像时,我在第 pip3 install sagemaker-training 行遇到错误。错误如下:

error: command 'gcc' failed: No such file or directory

ERROR: Command errored out with exit status 1: /opt/conda/bin/python3.9 -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-fj0cb373/sagemaker-training_66ca9935ed134c95ac11a32e118e4568/setup.py'"'"'; __file__='"'"'/tmp/pip-install-fj0cb373/sagemaker-training_66ca9935ed134c95ac11a32e118e4568/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-o5rzjscd/install-record.txt --single-version-externally-managed --compile --install-headers /opt/conda/include/python3.9/sagemaker-training Check the logs for full command output.

The command '/bin/bash -o pipefail -c pip3 install sagemaker-training' returned a non-zero code: 1

如果有更合适的基础图像,有人可以指出吗?我通常会尝试关注此页面 https://github.com/aws/sagemaker-training-toolkit.

注意:我知道我可以使用一些 sagemaker 预构建容器,而无需使用我自己的 docker 文件。然而,我正在尝试这样做是为了我自己的学习,所以我知道如何为无法利用它们的项目做些什么。

我调整了你的 Dockerfile,它为我成功构建。

FROM jupyter/scipy-notebook
ARG defaultuser=jovyan
USER root
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update && \
    apt-get -y install gcc mono-mcs && \
    rm -rf /var/lib/apt/lists/*
USER $defaultuser

RUN pip3 install sagemaker-training

COPY train.py /opt/ml/code/train.py

ENV SAGEMAKER_PROGRAM train.py

(在安装 GCC 时,我必须针对基本容器中的默认用户不是 root 的事实进行调整)