美文网首页
dockerfile错误日志(pip安装源)

dockerfile错误日志(pip安装源)

作者: 逍遥_yjz | 来源:发表于2021-09-23 20:30 被阅读0次

    docker -基于dockerfile自制镜像及其运行容器等报错集合,当然也包含直接拉取镜像日志

    1. Dockerfile更换pip安装源

    首先Dockerfile使用的centos7.5.1804作为基础镜像 FROM centos:centos7.5.1804,然后安装Python3.6.5。

    安装第三方包是默认走了这个源,https://files.pythonhosted.org/packages,编译用时太久。

    修改成国内的源:

    第一种方法:

    RUN pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple --no-cache-dir -r requirements2.txt
    

    第二种方法:

    未换源:

    pip3 install numpy
    

    换成阿里云的源

    pip3 install -i http://mirrors.aliyun.com/pypi/simple/ numpy --trusted-host mirrors.aliyun.com
    

    2. anaconda安装TensorFlow版本

    自定dockerfile文件

    FROM purposefly/anapip
    WORKDIR /app
    COPY . /app
    RUN pip install tensorflow==1.12.0
    。。。。
    

    运行报错,没有这个版本,会提示你去搜索有哪些版本

    anaconda search -t conda tensorflow

    2.1 第一种方法

    首先在Linux中,第一步直接拉取一个anaconda镜像,运行生成容器,在容器内部使用以下命令:

    anaconda search -t conda tensorflow
    

    [图片上传失败...(image-41433c-1632399984641)]

    然后,第二步找到自己安装环境对应的最新TensorFlow后,然后查看安装命令

    安装anaconda/tensorflow具体操作命令:

    anaconda show anaconda/tensorflow
    
    (base) root@e2c332ba5966:/# anaconda show anaconda/tensorflow
    Using Anaconda API: https://api.anaconda.org
    Name:    tensorflow
    Summary: TensorFlow is a machine learning library.
    Access:  public
    Package Types:  conda
    Versions:
       + 0.10.0rc0
       + 1.0.1
       + 1.1.0
       + 1.2.1
       + 1.3.0
       + 1.4.1
       + 1.5.0
       + 1.6.0
       + 1.7.0
       + 1.7.1
       + 1.8.0
       + 1.9.0
       + 1.10.0
       + 1.11.0
       + 1.12.0
       + 1.13.1
       + 1.14.0
       + 2.0.0
       + 1.15.0
       + 2.1.0
       + 2.2.0
       + 2.3.0
       + 2.4.1
       + 2.5.0
       + 2.6.0
    
    To install this package with conda run:
         conda install --channel https://conda.anaconda.org/anaconda tensorflow
    

    第三步第二步会提供一个下载地址,使用下面命令就可安装新版本tensorflow

    conda install --channel https://conda.anaconda.org/anaconda tensorflow
    

    第四步:将命令放入到dockerfile文件中

    RUN conda install --channel https://conda.anaconda.org/anaconda tensorflow
    

    2.2 第二种方法

    打开网址 https://anaconda.org/ ,搜索 TensorFlow,发现各种版本

    假如点击 conda-forge / tensorflow 2.4.3 ,就会发现安装方法

    如果是win

    • 打开anaconda-prompt

    • 查看tensorflow各个版本

    3. RUN 时版本不匹配

    报错:

    ERROR: Could not find a version that satisfies the requirement RUN (from versions: 0.1, 0.2)

    原因分析:

    翻译->

    错误:找不到满足运行要求的版本(来自版本:0.1、0.2)

    大概的问题就是安装numpy版本过高。

    解决方法:

    卸载numpy,安装低版本numpy==1.10.0

    4. yum 安装加 -y

    报错

    yum load-transaction /tmp/yum_save_tx.2021-09-22.11-11.hmf_D6.yumtx

    原因分析:

    PS:我是在Dockerfile里设置,然后进入镜像手动测试,Dockerfile报错如下:

    Is this ok [y/d/N]: Exiting on user command
    Your transaction was saved, rerun it with:
    yum load-transaction /tmp/yum_save_tx.2018-02-01.02-10.O1ZlZ_.yumtx
    The command '/bin/sh -c yum update && yum install 安装包' returned a non-zero code: 1
    

    命令里是yum install,但是还是需要选择Y/N没有自动执行

    解决方法:

    在命令里加 -y

    RUN yum install -y libSM-1.2.2-2.el7.x86_64 --setopt=protected_multilib=false
    

    还可以将 -y 加到命令的最后面

    5. dockerfile 更新pip版本

    报错:

    Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-buil

    原因分析:

    出错的原因应该是pip的版本太老

    解决方法:

    更新版本就可以啦,如下:

    RUN /usr/bin/python3  -m pip install --upgrade pip
    

    6. ImageAI 加载模型的时编码utf-8问题

    报错:

    在keras源码中1004行,编码问题

    AttributeError: 'str' object has no attribute 'decode'
    

    问题分析:

    在原来的

    /usr/local/python3.6/lib/python3.6/site-packages/keras/engine/saving.py  1004 line
    
    original_keras_version = f.attrs['keras_version'].decode('utf8')
    original_backend = f.attrs['backend'].decode('utf8')
    

    解决方法:

    修改代码

    if 'keras_version' in f.attrs:
        original_keras_version = f.attrs['keras_version'].encode('utf-8').decode('utf8')
    else:
        original_keras_version = '1'
    if 'backend' in f.attrs:
        original_backend = f.attrs['backend'].encode('utf-8').decode('utf8')
    

    7. anaconda 创建环境 报错

    CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://repo.continuum.i

    解决方法:

    配置清华源

    RUN conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/ 
    RUN conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
    RUN conda config --set show_channel_urls yes
    

    win10 conda 换源

    8. dockerfile中运行conda更新时出现问题

    运行

    RUN conda update conda
    

    报错:

    dockerfile /bin/sh: conda: not found The command '/bin/sh -c conda update co

    解决方法:

    在Dockerfile中执行anaconda之前,您必须在构建期间使用ENV变量将anaconda添加到PATH.

    RUN bash Anaconda3-2018.12-Linux-x86_64.sh -b && \
        echo "export PATH="/root/anaconda3/bin:$PATH"" >> ~/.bashrc && \
        /bin/bash -c "source ~/.bashrc"
    ENV PATH /root/anaconda3/bin:$PATH
    RUN conda update --all
    

    在.bashrc中更新PATH将使在使用docker run运行时可以在容器内调用conda,但无法在docker文件中的其他RUN语句中调用。总体来说,基于dockerfile生成镜像时,无法使用。

    也可参考下面文章

    conda: command not found解决办法

    相关文章

      网友评论

          本文标题:dockerfile错误日志(pip安装源)

          本文链接:https://www.haomeiwen.com/subject/fmgogltx.html