在docker container

时间:2017-11-15 13:54:43

标签: r docker bioconductor

在使用最新的bioconductor image release_core2构建docker容器时,我正在尝试安装包 flowDensity 。我收到以下错误:

  

错误:依赖项'rgeos','flowWorkspace'不可用   包'flowDensity'

我可以通过将apt-get install libgeos-dev添加到dockerfile来修复第一个问题。然而,第二个更棘手。它归结为包 RProtoBufLib ,它是 cytolib 的依赖关系,因此也是 flowWorkspace 的依赖关系。安装 RProtoBufLib 时收到以下错误:

config.status: error: cannot find input file: `config.h.in'
CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/bash /tmp/Rtmpro4BMN/R.INSTALL65e11754ab1d/RProtoBufLib/src/protobuf-2.6.0/missing aclocal-1.14 -I m4
/tmp/Rtmpro4BMN/R.INSTALL65e11754ab1d/RProtoBufLib/src/protobuf-2.6.0/missing: line 81: aclocal-1.14: command not found
WARNING: 'aclocal-1.14' is missing on your system.
         You should only need it if you modified 'acinclude.m4' or
         'configure.ac' or m4 files included by 'configure.ac'.
         The 'aclocal' program is part of the GNU Automake package:
         <http://www.gnu.org/software/automake>
         It also requires GNU Autoconf, GNU m4 and Perl in order to run:
         <http://www.gnu.org/software/autoconf>
         <http://www.gnu.org/software/m4/>
         <http://www.perl.org/>
make: *** [aclocal.m4] Error 127
Makefile:407: recipe for target 'aclocal.m4' failed

我找到了this question,但在构建docker容器时我不知道如何解决这个问题。欢迎任何建议。谢谢!

1 个答案:

答案 0 :(得分:1)

我在我的本地环境中重新创建了您的问题。问题是您没有安装automake,autoconf和libtoolize。

这些是我的install.RDockerfile脚本。

install.R:

install.packages( c('RProtoBufLib', 'flowDensity'), dependencies = TRUE, repos = c('http://bioconductor.org/packages/3.6/bioc', 'https://cloud.r-project.org') )

Dockerfile:

FROM bioconductor/release_core2

RUN apt-get update \
    && apt-get install -y --no-install-recommends \
          libgeos-dev ed \
          automake autoconf libtool \
    && rm -rf /var/lib/apt/lists/*

ADD install.R /tmp

RUN Rscript /tmp/install.R \
    && rm -rf /tmp/downloaded_packages/ /tmp/*.rds \
    && rm -rf /var/lib/apt/lists/* \
    && rm -rf /usr/share/info/* \
    && rm -rf /usr/share/man/* \
    && rm -rf /usr/share/doc/* \
    && rm -rf /var/lib/dpkg/info

为了构建项目,我执行了这个命令:

docker build -t rbiotest .

注意:构建时间似乎是永恒的。