拉取基础镜像,基础镜像基于cuda10.1,基础镜像种已经包含了python3 ,pip3.
#FROM Centos:7.2.15.11
#FROM pytorch/pytorch:1.1.0-cuda10.1-cudnn7.5-devel
#按自己需求
FROM nvidia/cuda:10.0-cudnn7-devel-centos7
LABEL maintainer “hhwei” #维护者信息
RUN mkdir /tmp #创建文件夹tmp
#COPY 是从和dockerfile 同文件夹的已经下载好的软件或whl,copy到镜像上,适合无网络环境,或者一些whl无法在线安装的情况
#COPY ./pytorch/pytorch:1.1.0-cuda10.0-cudnn7.5-devel /tmp/pytorch/pytorch:1.1.0-cuda10.0-cudnn7.5-devel
COPY ./Anaconda3-4.2.0-Linux-x86_64.sh /tmp/Anaconda3-4.2.0-Linux-x86_64.sh #可替换成miniconda
#WORKDIR /tmp
cd /tmp
RUN sh -c '/bin/echo -e “\nyes\n\nyes” | sh Anaconda3-4.2.0-Linux-x86_64.sh’ #安装anaconda
cd …
#设置环境变量
ENV PATH /root/anaconda3/bin:$PATH
#安装 pytorch
COPY ./torch-1.1.0-cp36-cp36m-linux_x86_64.whl /tmp/torch-1.4.1-cp36-cp36m-linux_x86_64.whl
RUN pip install torch-1.1.0-cp36-cp36m-linux_x86_64.whl
&& pip install -r environment.txt
设置软连接
RUN rm -rf /usr/bin/python && ln -s /root/anaconda3/bin/python /usr/bin/python
#下载python,解压、编译、安装
RUN wget -O /usr/local/src/Python-3.5.5.tar.xz https://www.python.org/ftp/python/3.5.5/Python-3.5.5.tar.xz
&& cd /usr/local/src/ && xz -d Python-3.5.5.tar.xz && tar -xf Python-3.5.5.tar
&& cd /usr/local/src/Python-3.5.5 && ./configure prefix=/usr/local/python3 && make && make install
tar zxf Python-3.6.8.tar -C /tmp/ #将压缩包解压到目录/tmp/
cd /tmp/Python-3.6.4/ #切换到解压后的目录下
yum install gcc zlib zlib-devel openssl-devel -y #安装软件解决依赖性
#安装目录可依个人喜好创建
mkdir -p /usr/local/python3
./configure --prefix=/usr/local/python3 --with-ssl #进行编译
make &&make install #安装
#建立Python3的软链接
RUN ln -s /usr/local/python3/bin/python3 /usr/bin/python3
#添加python3的命令到环境变量中
echo export PATH="/usr/local/python3/bin:$PATH" >> ~/.bashrc
#vim ~/.bashrc #查看是否添加成功
source ~/.bashrc #加载环境变量
2、执行创建 project文件夹//project 指的是当前目录下的代码
RUN mkdir /project
3、下面这段命令指的是 将你的代码 放到你构建的镜像 的 project目录下
copy project /project
4、由于基础镜像无法覆盖选手代码项目中的全部依赖,所以选手需要将上面执行得到的requirement.txt执行,安装其它依赖
4.1、进入到存放requirements.txt 的目录
WORKDIR /project/
4.2、执行下载requirements.txt中的依赖
RUN pip3 install -r requirements.txt
5、cd 到project主程序目录下
WORKDIR /project/code
6、指定容器运行时的动作
CMD [“python3","test.py "]