我正在尝试使用Dockerfile构建我自己的docker镜像。但是,Docker镜像有问题。这是我的dockerfile。第一次,它说成功构建了镜像;然而,一些包不工作(错误,如权限被拒绝和命令找不到),所以我决定删除所有的镜像和容器来重建这个镜像。它一直在说使用缓存而不是重新安装所有的包。当我使用这个docker时,它一开始就失败了。
FROM ubuntu:18.04
ENV PATH="/root/miniconda3/bin:${PATH}"
ARG PATH="/root/miniconda3/bin:${PATH}"
RUN apt-get update
RUN apt-get install -y wget && rm -rf /var/lib/apt/lists/*
RUN wget \
https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh \
&& mkdir /root/.conda \
&& bash Miniconda3-latest-Linux-x86_64.sh -b \
&& rm -f Miniconda3-latest-Linux-x86_64.sh
RUN conda --version
RUN conda config --add channels defaults
RUN conda config --add channels bioconda
RUN conda config --add channels conda-forge
RUN conda install -c bioconda bowtie2 fastqc samtools ucsc-bedsort ucsc-bedgraphtobigwig bedtools deeptools homer seacr发布于 2021-03-24 21:50:50
就像评论中的其他人所说的那样,您的Dockerfile构建正确,并且应该可以使用docker run按预期工作。我有一些使用Nextflow构建和运行Docker容器的经验,所以我想我应该分享一下我构建容器的经验,该容器包含运行您的工作流所需的所有包。
首先,考虑将所需的包移动到environment.yml文件中。这将有助于将项目的所有依赖项保存在一个位置:
name: my-awesome-project
channels:
- bioconda
- conda-forge
- defaults
dependencies:
- bowtie2
- fastqc
- samtools
- ucsc-bedsort
- ucsc-bedgraphtobigwig
- bedtools
- deeptools
- homer
- seacr其次,考虑从continuumio/miniconda3构建Dockerfile文件
FROM continuumio/miniconda3:4.9.2
RUN apt-get update \
&& apt-get install -y procps \
&& apt-get clean -y \
&& rm -rf /var/lib/apt/lists/*
COPY environment.yml /
RUN conda env create -f /environment.yml \
&& conda clean -a
ENV PATH /opt/conda/envs/my-awesome-project/bin:$PATH
COPY install_packages.R /
COPY bed_convert.R /
COPY cut_tag_fingerprint_cmd.R /
RUN Rscript install_packages.R
CMD ["Rscript", "bed_convert.R"]
CMD ["Rscript", "cut_tag_fingerprint_cmd.R"]最后,将Conda和Docker的配置文件添加到nextflow.config文件中。也许下面这样的内容就足够了:
process.container = 'my-awesome-project:v1.0'
profiles {
conda { process.conda = "${baseDir}/environment.yml" }
docker { docker.enabled = true }
singularity { singularity.enabled = true }
}https://stackoverflow.com/questions/66774653
复制相似问题