I am trying to install the package flowDensity when building a docker container using the latest bioconductor image release_core2. I receive the following error:
ERROR: dependencies ‘rgeos’, ‘flowWorkspace’ are not available for package ‘flowDensity’
I could fix the first one by adding apt-get install libgeos-dev
to the dockerfile. However, the second one is more tricky. It comes down to the package RProtoBufLib, which is a dependency for cytolib and hence for flowWorkspace. I receive the following error when installing 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
I found this question, but I have no idea how to go about this when building a docker container. Any suggestions are welcome. Thanks!
I've recreated your issue on my local environment. The problem is that you don't have automake, autoconf and libtoolize installed.
These are my install.R
and Dockerfile
script.
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
In order to build the project I've executed this command:
docker build -t rbiotest .
NOTE: Build time will seem eternal.