Created
December 30, 2019 04:14
-
-
Save xiaodaigh/5ad6fc392e9adff134a4b8e86172993c to your computer and use it in GitHub Desktop.
Dockerfile for minimal r and python docker with arrow
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
FROM python:3.7-alpine3.10 | |
RUN apk add --no-cache \ | |
build-base \ | |
cmake \ | |
bash \ | |
boost-dev \ | |
autoconf \ | |
zlib-dev \ | |
flex \ | |
bison | |
RUN pip install --no-cache-dir six pytest numpy cython | |
RUN pip install --no-cache-dir pandas | |
ARG ARROW_VERSION=0.12.0 | |
ARG ARROW_SHA1=2ede75769e12df972f0acdfddd53ab15d11e0ac2 | |
ARG ARROW_BUILD_TYPE=release | |
ENV ARROW_HOME=/usr/local \ | |
PARQUET_HOME=/usr/local | |
#Download and build apache-arrow | |
RUN mkdir /arrow \ | |
&& apk add --no-cache curl \ | |
&& curl -o /tmp/apache-arrow.tar.gz -SL https://github.com/apache/arrow/archive/apache-arrow-${ARROW_VERSION}.tar.gz \ | |
&& echo "$ARROW_SHA1 *apache-arrow.tar.gz" | sha1sum /tmp/apache-arrow.tar.gz \ | |
&& tar -xvf /tmp/apache-arrow.tar.gz -C /arrow --strip-components 1 \ | |
&& mkdir -p /arrow/cpp/build \ | |
&& cd /arrow/cpp/build \ | |
&& cmake -DCMAKE_BUILD_TYPE=$ARROW_BUILD_TYPE \ | |
-DCMAKE_INSTALL_LIBDIR=lib \ | |
-DCMAKE_INSTALL_PREFIX=$ARROW_HOME \ | |
-DARROW_PARQUET=on \ | |
-DARROW_PYTHON=on \ | |
-DARROW_PLASMA=on \ | |
-DARROW_BUILD_TESTS=OFF \ | |
.. \ | |
&& make -j$(nproc) \ | |
&& make install \ | |
&& cd /arrow/python \ | |
&& python setup.py build_ext --build-type=$ARROW_BUILD_TYPE --with-parquet \ | |
&& python setup.py install \ | |
&& rm -rf /arrow /tmp/apache-arrow.tar.gz | |
# install R | |
ENV _R_SHLIB_STRIP_=true | |
COPY remotes.R /usr/local/bin/ | |
COPY installr /usr/local/bin/ | |
RUN apk update && \ | |
apk add gcc musl-dev gfortran g++ zlib-dev bzip2-dev xz-dev pcre-dev \ | |
curl-dev make perl && \ | |
## | |
wget https://cran.r-project.org/src/base/R-3/R-3.6.2.tar.gz && \ | |
tar xzf R-3.6.2.tar.gz && \ | |
## | |
cd R-3.6.2 && \ | |
CXXFLAGS=-D__MUSL__ ./configure --with-recommended-packages=no \ | |
--with-readline=no --with-x=no --enable-java=no \ | |
--disable-openmp && \ | |
make && \ | |
make install && \ | |
## | |
rm -rf /R-3.6.2* && \ | |
## | |
strip -x /usr/local/lib/R/bin/exec/R && \ | |
strip -x /usr/local/lib/R/lib/* && \ | |
find /usr/local/lib/R -name "*.so" -exec strip -x \{\} \; && \ | |
## | |
rm -rf /usr/local/lib/R/library/translations && \ | |
rm -rf /usr/local/lib/R/doc && \ | |
mkdir -p /usr/local/lib/R/doc/html && \ | |
find /usr/local/lib/R/library -name help | xargs rm -rf && \ | |
## \ | |
apk add libgfortran xz-libs libcurl libpcrecpp libbz2 && \ | |
## | |
installr disk.frame && \ | |
apk del gfortran gcc g++ musl-dev zlib-dev bzip2-dev xz-dev curl-dev \ | |
pcre-dev perl \ | |
build-base \ | |
cmake \ | |
bash \ | |
boost-dev\ | |
autoconf \ | |
zlib-dev \ | |
flex \ | |
bison \ | |
curl && \ | |
apk add libgfortran xz-libs libcurl libpcrecpp libbz2 && \ | |
rm -rf /var/cache/apk/* | |
RUN touch /usr/local/lib/R/doc/html/R.css | |
CMD ["R"] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment