1. 程式人生 > 其它 >python3.6及anaconda基礎映象dockerfile(基於centos 作業系統)

python3.6及anaconda基礎映象dockerfile(基於centos 作業系統)

技術標籤:docker

python3.6

FROM centos:centos7.5.1804

RUN  yum -y install wget gcc make openssl-devel bzip2-devel \
     expat-devel gdbm-devel readline-devel sqlite-devel \
     mysql-devel gcc-devel python-devel xz-devel

RUN  mkdir -p /home/python \
     &&wget -P /home/python https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz \
     &&
tar -zxvf /home/python/Python-3.6.5.tgz -C /home/python \ &&cd /home/python/Python-3.6.5 \ &&./configure --prefix=/usr/local/python && make && make install \ &&ln -s /usr/local/python/bin/python3 /usr/bin/python3 \ &&ln -s /usr/local/python/bin/pip3 /usr/bin/pip3 \ &&
rm -rf /home/python ENV PATH="/usr/local/python/bin:$PATH" RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime CMD python3

安裝過程參考
https://www.cnblogs.com/yjlch1016/p/9289588.html

anaconda

FROM centos:centos7.5.1804

RUN yum install -y bzip2 wget 

RUN wget --quiet https://repo.continuum.io/archive/Anaconda3-5.0.1-Linux-x86_64.sh -O ~/anaconda.sh &&
\ /bin/bash ~/anaconda.sh -b -p /opt/conda && \ rm ~/anaconda.sh ENV PATH="/opt/conda/bin:$PATH" RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime ENV LANG C.UTF-8 LC_ALL=C.UTF-8

安裝過程copy的
https://blog.csdn.net/quincuntial/article/details/79292575

注意的是dockerfile中的環境變數需要用ENV

ENV PATH="/opt/conda/bin:$PATH"

用RUN export 則下層的映象是使用不了上層定義的環境變數
用 echo “$PATH” >>~/.profile或 ~/.bashrc這種方式,使用bash命令進入容器是可以使用環境變數,但dockerfile下一層命令中依舊不能使用上層寫進檔案中的環境變數,不過如果source一下檔案可能就ok,沒有嘗試,有興趣的可以試試

還有,基礎映象中並未進行pip的換源操作,我換源是在具體的應用映象的dockerfile中換的源,換源可以在dockerfile中使用COPY, 在build映象是就會copy 上下文中的檔案進映象,當然也可以用RUN echo -e直接生成檔案,注意有-e, -e是不忽略具體符號的,如果沒有 -e 寫進檔案中的配置將不會換行,卻而代之的是\n字串
在這裡插入圖片描述

FROM  anaconda

RUN mkdir -p ~/.pip \
    &&echo -e "[global] \nindex-url = https://pypi.tuna.tsinghua.edu.cn/simple" \
    >>~/.pip/pip.conf

RUN echo -e "channels: \n\
  - https://mirrors.ustc.edu.cn/anaconda/pkgs/main/ \n\
  - https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/ \n\
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ \n\
show_channel_urls: true \n">>~/.condarc

RUN pip install ......

注意\n號換行符和\中間沒有空格,這是為了縮排格式正確

額,如果有想要自己做基礎映象,寫dockerfile的,可以參考一下下面的文章,我覺得寫的很有參考價值
精簡Docker映象的五種通用方法

我不是部落格的生產者,我只是部落格的搬運工
感謝大佬的無私奉獻,希望這篇部落格能對後面的新人有所幫助
還有,如果不允許轉載的話,請及時聯絡我,我會及時刪除,謝謝