-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathDockerfile.repo
81 lines (67 loc) · 2.53 KB
/
Dockerfile.repo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
FROM quay.io/centos/centos:stream9
# R-Java
ENV JAVA_VERSION 1.8.0
ENV JAVA_HOME /usr/lib/jvm/java
RUN echo "$JAVA_HOME/jre/lib/$(arch)/server/" > /etc/ld.so.conf.d/rApache_rJava.conf && \
export LD_LIBRARY_PATH=$JAVA_HOME/jre/lib/$(arch):$JAVA_HOME/jre/lib/$(arch)/server/ && \
/sbin/ldconfig
RUN \
echo "fastestmirror=1" >> /etc/dnf/dnf.conf && \
dnf update -y && \
dnf upgrade -y && \
dnf install -y epel-release && \
dnf config-manager --set-enabled crb && \
dnf module enable -y postgresql:15 && \
dnf install postgresql libpq libpq-devel -y && \
dnf install -y rpm-build which make wget tar httpd-devel libapreq2-devel libcurl-devel openssl-devel libpng-devel java-1.8.0-openjdk java-1.8.0-openjdk-devel curl-devel libxml2-devel llvm-devel llvm-toolset sudo cmake initscripts && \
dnf builddep -y R-devel && \
dnf install -y MTA mod_ssl /usr/sbin/semanage && \
dnf clean all
ENV R_VERSION 4.4.0
RUN curl -O https://cran.rstudio.com/src/base/R-4/R-${R_VERSION}.tar.gz && \
tar -xzvf R-${R_VERSION}.tar.gz && \
cd R-${R_VERSION} && \
./configure \
--prefix=/opt/R/${R_VERSION} \
--enable-memory-profiling \
--enable-R-shlib \
--with-blas \
--with-lapack && \
make && \
make install
RUN ln -s /opt/R/${R_VERSION}/bin/R /usr/local/bin/R
RUN ln -s /opt/R/${R_VERSION}/bin/Rscript /usr/local/bin/Rscript
RUN R CMD javareconf
RUN \
mkdir -p ~/rpmbuild/SOURCES && \
mkdir -p ~/rpmbuild/SPECS
ENV RAPACHE_VERSION master
RUN \
cd ~ && \
wget https://github.com/jeffreyhorner/rapache/archive/$RAPACHE_VERSION.tar.gz -O rapache-$RAPACHE_VERSION.tar.gz && \
tar xzvf rapache-$RAPACHE_VERSION.tar.gz && \
cd rapache-$RAPACHE_VERSION && \
./configure \
--with-R=/usr/local/bin/R\
--with-apreq2-config=/usr/bin/apreq2-config && \
make && \
make install
RUN wget https://github.com/stevengj/nlopt/archive/v2.7.1.tar.gz && \
tar -xzvf v2.7.1.tar.gz && \
cd nlopt-2.7.1 && \
cmake . && make && sudo make install
ENV LD_LIBRARY_PATH /nlopt-2.7.1:${LD_LIBRARY_PATH}
# Run ldconfig to update the shared library cache
RUN ldconfig
RUN useradd -u 1000 -ms /bin/bash runner
ENV ACAS_HOME /home/runner/build
RUN echo $ACAS_HOME && mkdir $ACAS_HOME
WORKDIR $ACAS_HOME
ENV R_LIBS $ACAS_HOME/r_libs
RUN mkdir $ACAS_HOME/r_libs
COPY DESCRIPTION $ACAS_HOME
COPY R/installation.R $ACAS_HOME
RUN chown -R runner:runner $ACAS_HOME
USER runner
RUN Rscript -e "source('installation.R');installDeps(sections = c('Imports', 'Suggests'));"
CMD ["bin/acas.sh", "run", "rservices"]