[英]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.