Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 在docker文件中使用特定的非python基本映像设置特定的python版本_Python 3.x_Docker - Fatal编程技术网

Python 3.x 在docker文件中使用特定的非python基本映像设置特定的python版本

Python 3.x 在docker文件中使用特定的非python基本映像设置特定的python版本,python-3.x,docker,Python 3.x,Docker,我想在一个特定的基础映像上创建一个专门使用python 3.5的docker映像,这个基础映像是nvidia/cuda(9.0-base映像),后者没有python环境 我需要特定版本的原因是为了支持运行cuda10.0 python3.5和gcc版本,您可以从PPA安装并像往常一样使用它: FROM nvidia/cuda RUN apt-get update && apt-get install -y --no-install-recommends software-pro

我想在一个特定的基础映像上创建一个专门使用python 3.5的docker映像,这个基础映像是nvidia/cuda(9.0-base映像),后者没有python环境


我需要特定版本的原因是为了支持运行cuda10.0 python3.5和gcc版本,您可以从PPA安装并像往常一样使用它:

FROM nvidia/cuda

RUN apt-get update && apt-get install -y --no-install-recommends software-properties-common \
    libsm6 libxext6 libxrender-dev curl \
    && rm -rf /var/lib/apt/lists/*

RUN echo "**** Installing Python ****" && \
    add-apt-repository ppa:deadsnakes/ppa &&  \
    apt-get install -y build-essential python3.5 python3.5-dev python3-pip && \
    curl -O https://bootstrap.pypa.io/get-pip.py && \
    python3.5 get-pip.py && \
    rm -rf /var/lib/apt/lists/*

COPY requirements.txt requirements.txt

RUN pip3.5 install -r requirements.txt

CMD ["python3.5", "app.py"]

你可以试着用康达。我使用了几个阶段来最小化最终容器并加速/缓存本地构建

# first stage
FROM nvidia/cuda:11.1-base-ubuntu18.04 as builder
RUN apt-get update && apt-get install -y curl wget gcc build-essential

# install conda
RUN wget --quiet https://repo.anaconda.com/miniconda/Miniconda3-4.5.12-Linux-x86_64.sh -O ~/miniconda.sh && \
     /bin/bash ~/miniconda.sh -b -p /opt/conda

# create env with python 3.5
RUN /opt/conda/bin/conda create -y -n myenv python=3.5
    
# install requirements
WORKDIR /app
COPY requirements.txt /app
ENV PATH=/opt/conda/envs/myenv/bin:$PATH    
RUN pip install -r requirements.txt
RUN pip uninstall -y pip


####################
# second stage (note: FROM container must be the same as builder)
FROM nvidia/cuda:11.1-base-ubuntu18.04 as runner

# copy environment data including python
COPY --from=builder /opt/conda/envs/myenv/bin /opt/conda/envs/myenv/bin
COPY --from=builder /opt/conda/envs/myenv/lib /opt/conda/envs/myenv/lib
# do some env settings
ENV PATH=/opt/conda/envs/myenv/bin:$PATH
ENV LC_ALL=C.UTF-8
ENV LANG=C.UTF-8


####################
# final image
from runner
WORKDIR /app    
COPY ./run.py /app
CMD [ "python", "run.py"]

你能显式地运行
python3.5
pip3.5
CMD[“python3.5”,“app.py”]
等吗?感谢你在nvidia/cuda上查看David```运行apt get update和apt get install-y libsm6 libxext6 libxrender dev python3.5 python3 pip COPY/app WORKDIR/app RUN pip3 install-r requirements.txt ENTRYPOINT[“python3.5”]CMD[“app.py”]``符合良好,但在使用参数运行时会产生以下错误:docker:来自守护程序的错误响应:OCI运行时创建失败:container\u linux.go:346:启动容器进程导致“exec:\”python3.5\“:在$PATH中未找到可执行文件”:未知。等待容器时出错[0000]:上下文取消EDI注意,在docker exec检查时,“哪个python3.5”不返回结果,“哪个python3.6”返回“/usr/bin/python3.6”“因此,在Dockerfile中明确说明apt get install python 3.5似乎并没有安装python 3.5这将构建python 3.5,但pip安装在错误的python中尝试使用easy_install pip->“python 3.5 pip”但是从nvidia/cuda安装到3.6/2.7运行apt get update和apt get install-y build ESTANCE checkinstall libsm6 libxext6 libxrender dev python3 pip wget libssl dev python3 setuptools运行cd/usr/src\&&wget&&tar xzf Python-3.5.2.tgz&&cd Python-3.5.2&.&configure&&make altinstall运行python3.5.5轻松安装.py pip COPY/app WORKDIR/app RUN python3.5-m pip安装-r requirements.txt CMD[“/bin/bash”]
FROM nvidia/cuda

RUN apt-get update && apt-get install -y --no-install-recommends software-properties-common \
    libsm6 libxext6 libxrender-dev curl \
    && rm -rf /var/lib/apt/lists/*

RUN echo "**** Installing Python ****" && \
    add-apt-repository ppa:deadsnakes/ppa &&  \
    apt-get install -y build-essential python3.5 python3.5-dev python3-pip && \
    curl -O https://bootstrap.pypa.io/get-pip.py && \
    python3.5 get-pip.py && \
    rm -rf /var/lib/apt/lists/*

COPY requirements.txt requirements.txt

RUN pip3.5 install -r requirements.txt

CMD ["python3.5", "app.py"]
# first stage
FROM nvidia/cuda:11.1-base-ubuntu18.04 as builder
RUN apt-get update && apt-get install -y curl wget gcc build-essential

# install conda
RUN wget --quiet https://repo.anaconda.com/miniconda/Miniconda3-4.5.12-Linux-x86_64.sh -O ~/miniconda.sh && \
     /bin/bash ~/miniconda.sh -b -p /opt/conda

# create env with python 3.5
RUN /opt/conda/bin/conda create -y -n myenv python=3.5
    
# install requirements
WORKDIR /app
COPY requirements.txt /app
ENV PATH=/opt/conda/envs/myenv/bin:$PATH    
RUN pip install -r requirements.txt
RUN pip uninstall -y pip


####################
# second stage (note: FROM container must be the same as builder)
FROM nvidia/cuda:11.1-base-ubuntu18.04 as runner

# copy environment data including python
COPY --from=builder /opt/conda/envs/myenv/bin /opt/conda/envs/myenv/bin
COPY --from=builder /opt/conda/envs/myenv/lib /opt/conda/envs/myenv/lib
# do some env settings
ENV PATH=/opt/conda/envs/myenv/bin:$PATH
ENV LC_ALL=C.UTF-8
ENV LANG=C.UTF-8


####################
# final image
from runner
WORKDIR /app    
COPY ./run.py /app
CMD [ "python", "run.py"]