簡體   English   中英

多階段 docker 構建失敗,因為它無法從第一個構建中看到 R

[英]Multi-stage docker build is failing because it can't see R from the first build

問題

我正在嘗試創建一個多映像 Dockerfile,它首先拉取 bioconductor 映像,調用設置 R 腳本,然后拉取 ubuntu 映像以安裝與 python 相關的包。 即使我已經將 R 保存到第一階段構建的路徑,但在第二階段構建之后似乎沒有保留,因為當我調用入口點腳本run_deseq2.py ,它說: /bin/sh: 1: Rscript: not found 如何在同一個 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"]
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"]

我對 R 了解不多,因此無法幫助處理整個 docker 映像,但您可以使用AS標記 stage,在另一個 stage 中,您可以復制粘貼文件。

更多詳細信息,您還可以查看辦公碼頭: https ://docs.docker.com/develop/develop-images/multistage-build/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM