简体   繁体   English

在 dockerfile 内安装奇点时出错

[英]Errors Installing singularity inside dockerfile

I am trying to run a nextflow pipeline which uses an older version of nextflow (21.04.3) and java version 8. Since I have to use this pipeline on a remote server, therefore I can only use singularity.我正在尝试运行使用旧版本的 nextflow (21.04.3) 和 java 版本 8 的 nextflow 管道。由于我必须在远程服务器上使用此管道,因此我只能使用奇异性。

As this nextflow pipeline also uses singularity pull calls therefore I need the singularity installed inside the docker image as well.由于这个 nextflow 管道也使用奇点拉调用,因此我还需要在 docker 映像中安装奇点。 Then, I can convert this image docker image to a singularity image and then I can move it to the remote server.然后,我可以将此图像 docker 图像转换为奇点图像,然后我可以将其移动到远程服务器。

I am trying to install singularity inside dockerfile but I am getting errors,我正在尝试在 dockerfile 内安装奇异性,但出现错误,

This is the dockerfile that I am using,这是我正在使用的 dockerfile,

FROM python:3.8.9-slim 
LABEL authors="phil.ewels@scilifelab.se,erik.danielsson@scilifelab.se" \
  description="Docker image containing requirements for the nfcore tools"

# Do not pick up python packages from $HOME
ENV PYTHONNUSERSITE=1

# Update pip to latest version
RUN python -m pip install --upgrade pip

# Install dependencies
COPY requirements.txt requirements.txt
RUN python -m pip install -r requirements.txt

# Install Nextflow dependencies
RUN apt-get update \
  && apt-get upgrade -y \
  && apt-get install -y git \
  && apt-get install -y wget

# Create man dir required for Java installation 
# and install Java
RUN mkdir -p /usr/share/man/man1 \
  && apt-get install -y  openjdk-11-jre \
  && apt-get clean -y && rm -rf /var/lib/apt/lists/*

# Install Singularity 
RUN wget -O- http://neuro.debian.net/lists/xenial.us-ca.full | tee /etc/apt/sources.list.d/neurodebian.sources.list && \ apt-key adv --recv-keys --keyserver hkp://pool.sks-keyservers.net:80 0xA5D32F012649A5A9 && \ apt-get update 

RUN apt-get install -y singularity-container

# Setup ARG for NXF_VER ENV
ARG NXF_VER=""
ENV NXF_VER ${NXF_VER}
# Install Nextflow
RUN wget https://github.com/nextflow- io/nextflow/releases/download/v21.04.3/nextflow | bash \
  && mv nextflow /usr/local/bin \
  && chmod a+rx /usr/local/bin/nextflow
# Add the nf-core source files to the image
COPY . /usr/src/nf_core
WORKDIR /usr/src/nf_core

# Install nf-core
RUN python -m pip install .

# Set up entrypoint and cmd for easy docker usage
CMD [ "." ]

These are the errors I am getting这些是我得到的错误

Step 9/17 : RUN wget -O- http://neuro.debian.net/lists/xenial.us-ca.full | tee 
/etc/apt/sources.list.d/neurodebian.sources.list && \ apt-key adv --recv-keys -- 
keyserver hkp://pool.sks-keyservers.net:80 0xA5D32F012649A5A9 && \ apt-get update
---> Running in afc3dcbbd1ee
--2022-03-17 17:40:19--  http://neuro.debian.net/lists/xenial.us-ca.full
Resolving neuro.debian.net (neuro.debian.net)... 129.170.233.11
Connecting to neuro.debian.net (neuro.debian.net)|129.170.233.11|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 262
Saving to: ‘STDOUT’

 0K                                                       100% 18.4M=0s

deb http://neurodeb.pirsquared.org data main contrib non-free
#deb-src http://neurodeb.pirsquared.org data main contrib non-free
deb http://neurodeb.pirsquared.org xenial main contrib non-free
#deb-src http://neurodeb.pirsquared.org xenial main contrib non-free
2022-03-17 17:40:19 (18.4 MB/s) - written to stdout [262/262]

/bin/sh: 1:  apt-key: not found
The command '/bin/sh -c wget -O- http://neuro.debian.net/lists/xenial.us-ca.full | tee /etc/apt/sources.list.d/neurodebian.sources.list && \ apt-key adv --recv-keys --keyserver hkp://pool.sks-keyservers.net:80 0xA5D32F012649A5A9 && \ apt-get update' 
returned a non-zero code: 127

I there a way to install singularity using a dockerfile?我有办法使用 dockerfile 安装奇点吗?

Thanks谢谢

I made some changes in the dockerfile based on the method to install singularity in linux given here .我根据此处给出的在 linux 中安装奇点的方法对 dockerfile 进行了一些更改。

The complete dockerfile with which I was able to run successfully nextflow, java and singularity within singularity is given below,完整的 dockerfile 我能够成功运行 nextflow,java 和奇点中的奇点如下所示,

FROM python:3.8.9-slim 
LABEL 
authors="phil.ewels@scilifelab.se,erik.danielsson@scilifelab.se" \
  description="Docker image containing requirements for the nfcore tools"

# Do not pick up python packages from $HOME
ENV PYTHONNUSERSITE=1

# Update pip to latest version
RUN python -m pip install --upgrade pip

# Install dependencies
COPY requirements.txt requirements.txt
RUN python -m pip install -r requirements.txt

# Install Nextflow dependencies
RUN apt-get update \
  && apt-get upgrade -y \
  && apt-get install -y git \
  && apt-get install -y wget

# Create man dir required for Java installation 
# and install Java
RUN mkdir -p /usr/share/man/man1 \
  && apt-get install -y  openjdk-11-jre \
  && apt-get clean -y && rm -rf /var/lib/apt/lists/*


# Install Singularity

RUN apt-get update && apt-get install -y \
build-essential \
libssl-dev \
uuid-dev \
libgpgme11-dev \
squashfs-tools \
libseccomp-dev \
wget \
pkg-config \
procps

# Download Go source version 1.16.3, install them and modify the PATH
ENV VERSION=1.16.3 
ENV OS=linux 
ENV ARCH=amd64
RUN wget https://dl.google.com/go/go$VERSION.$OS-$ARCH.tar.gz && \
tar -C /usr/local -xzvf go$VERSION.$OS-$ARCH.tar.gz && \
rm go$VERSION.$OS-$ARCH.tar.gz && \
echo 'export PATH=$PATH:/usr/local/go/bin' | tee -a /etc/profile

# Download Singularity from version 3.7.3 (security version)
ENV VERSION=3.7.3
RUN wget https://github.com/sylabs/singularity/releases/download/v${VERSION}/singularity-${VERSION}.tar.gz && \
tar -xzf singularity-${VERSION}.tar.gz


# Compile Singularity sources and install it


RUN export PATH=$PATH:/usr/local/go/bin && \
cd singularity && \
./mconfig --without-suid && \
make -C ./builddir && \
make -C ./builddir install

# Setup ARG for NXF_VER ENV
ARG NXF_VER=""
ENV NXF_VER ${NXF_VER}
# Install Nextflow
RUN wget https://github.com/nextflow-io/nextflow/releases/download/v21.04.3/nextflow | bash \
  && mv nextflow /usr/local/bin \
  && chmod a+rx /usr/local/bin/nextflow
# Add the nf-core source files to the image
COPY . /usr/src/nf_core
WORKDIR /usr/src/nf_core

# Install nf-core
RUN python -m pip install .

# Set up entrypoint and cmd for easy docker usage
CMD [ "." ]

The file named requirements.txt used in the above dockerfile is given below,上面 dockerfile 中使用的名为requirements.txt的文件如下所示,

click
GitPython
jinja2
jsonschema
packaging
prompt_toolkit>=3.0.3
pyyaml
pytest-workflow
questionary>=1.8.0
requests_cache
requests
rich>=10.0.0
tabulate

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 在 Jenkins Dockerfile 内安装 pip 时出现语法错误 - SyntaxError when installing pip inside Jenkins Dockerfile 在 Dockerfile 中安装 microsoft-net-sdk-blazorwebassembly-aot 时出错 - Errors installing microsoft-net-sdk-blazorwebassembly-aot in Dockerfile 在 Dockerfile 中安装包时出错(使用 cron 运行 pythoscript) - Errors when installing packages in Dockerfile (to run pythoscript with cron) 从 dockerfile 激活奇异容器中的 conda 环境 - Activate conda environment in singularity container from dockerfile 如何从 dockerfile 构建奇异容器 - how to build singularity container from dockerfile 是否可以从 Dockerfile 创建奇点图像? - Is it possible to create a Singularity image from Dockerfile? 使用 Singularity 容器运行带有标志的 Dockerfile - Run Dockerfile with flags using Singularity container 在 dockerfile 内安装 haskell 的 cabal 或 ghcup 不起作用 - Installing haskell's cabal or ghcup inside a dockerfile wont work Dockerfile 映像构建:Dockerfile 中的“RUN wget”导致部分文件下载,但构建完成且没有错误 - Dockerfile image build: “RUN wget” inside the Dockerfile results in partial file download, but the build completes with no errors Dockerfile 节点未安装依赖项 - Dockerfile node not installing dependencies
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM