创建 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 的事实进行调整)
我对 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 的事实进行调整)