多阶段docker构建失败,因为它可以';从第一次构建中看不到R

多阶段docker构建失败,因为它可以';从第一次构建中看不到R,r,docker,bioconductor,R,Docker,Bioconductor,问题 我正在尝试创建一个多映像Dockerfile,它首先提取bioconductor映像,调用setup R脚本,然后提取一个ubuntu映像来安装python相关的软件包。尽管我已将R从第一个阶段构建保存到path,但在第二个阶段构建之后,它似乎不会保留,因为当我调用entrypoint脚本run_deseq2.py时,它会显示:/bin/sh:1:Rscript:not found。如何在同一dockerfile中正确地组合这两个阶段,以便它们仍然可以“看到”彼此 Dockerfile F

问题

我正在尝试创建一个多映像Dockerfile,它首先提取bioconductor映像,调用setup R脚本,然后提取一个ubuntu映像来安装python相关的软件包。尽管我已将R从第一个阶段构建保存到path,但在第二个阶段构建之后,它似乎不会保留,因为当我调用entrypoint脚本
run_deseq2.py
时,它会显示:
/bin/sh:1:Rscript:not found
。如何在同一dockerfile中正确地组合这两个阶段,以便它们仍然可以“看到”彼此

Dockerfile

FROM bioconductor/release_base2

ADD src/setup.R /
RUN Rscript /setup.R

ENV PATH=/usr/local/bin/:$PATH

FROM ubuntu:19.04 

ENV DEBIAN_FRONTEND=noninteractive  

WORKDIR / 

RUN apt-get update && \ 
    apt-get install -y \ 
        python-dev \ 
        python-pip \ 
        wget 

RUN pip install awscli boto3

COPY src/run_deseq2.py /
COPY src/s3_utils.py /
COPY src/job_utils.py /
COPY src/deseq2.R /
COPY src/ModelLoxTag.R /

ENV R_THREADS=30 

# Run docker, starting with run script
ENTRYPOINT ["python", "/run_deseq2.py"]
我对docker不太了解,所以无法帮助处理整个docker图像,但您可以使用
将stage标记为
,在另一个stage中,您可以复制粘贴文件

有关更多详细信息,您还可以查看Officeal dock:

FROM bioconductor/release_base2 AS buidler
ADD src/setup.R /
RUN Rscript /setup.R
ENV PATH=/usr/local/bin/:$PATH

FROM ubuntu:19.04 
ENV DEBIAN_FRONTEND=noninteractive  
WORKDIR / 
RUN apt-get update && \ 
    apt-get install -y \ 
        python-dev \ 
        python-pip \ 
        wget 
RUN pip install awscli boto3
COPY --from=builder src/run_deseq2.py /   #If you want to copy something from stage-1 use from 
COPY src/s3_utils.py /
COPY src/job_utils.py /
COPY src/deseq2.R /
COPY src/ModelLoxTag.R /
ENV R_THREADS=30 
# Run docker, starting with run script
ENTRYPOINT ["python", "/run_deseq2.py"]