-
Notifications
You must be signed in to change notification settings - Fork 3.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ARROW-3366: [R] Dockerfile for docker-compose setup
Thank you to @romainfrancois and others who have pushed forward the R side of this project! This PR is my attempt to address [ARROW-3336](https://issues.apache.org/jira/projects/ARROW/issues/ARROW-3366), providing a testing container for the R package. This follows up on work done by @kszucs in #2572 in an R-specific way. **NOTE:** This PR is a WIP. `R CMD INSTALL` currently fails because it cannot find wherever I installed `arrow` to. But I felt that this is far enough along to put up for review. Author: James Lamb <jaylamb20@gmail.com> Author: Krisztián Szűcs <szucs.krisztian@gmail.com> Closes #2770 from jameslamb/r_dockerfile and squashes the following commits: 9fcebe5 <James Lamb> removed failing test in the R package dd26d4b <James Lamb> fixed failing test in the R package 343456a <James Lamb> more changes 0db3369 <James Lamb> added bit64 dependency to R package f7c050e <Krisztián Szűcs> R_CHECK_FORCE_SUGGESTS db9ee5b <Krisztián Szűcs> pass CXXFLAGS 8a8376d <James Lamb> Put R build steps into a separate CI script 64ea840 <James Lamb> Updated LD_LIBRARY_PATH in R container 4d7f02c <James Lamb> fixed a few issues in R container 94242b3 <James Lamb> Add explict cpp build in usage for R docker-compose 4a7112b <James Lamb> Fixed comment text in R Dockerfile d8e55d7 <James Lamb> removed todo about R containers in docker-compose 210a774 <James Lamb> ARROW-3366: Dockerfile for docker-compose setup
- Loading branch information
Showing
6 changed files
with
131 additions
and
5 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
#!/usr/bin/env bash | ||
# Licensed to the Apache Software Foundation (ASF) under one | ||
# or more contributor license agreements. See the NOTICE file | ||
# distributed with this work for additional information | ||
# regarding copyright ownership. The ASF licenses this file | ||
# to you under the Apache License, Version 2.0 (the | ||
# "License"); you may not use this file except in compliance | ||
# with the License. You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, | ||
# software distributed under the License is distributed on an | ||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||
# KIND, either express or implied. See the License for the | ||
# specific language governing permissions and limitations | ||
# under the License. | ||
|
||
set -e | ||
|
||
export ARROW_BUILD_TOOLCHAIN=$CONDA_PREFIX | ||
export ARROW_HOME=$CONDA_PREFIX | ||
|
||
# For newer GCC per https://arrow.apache.org/docs/python/development.html#known-issues | ||
export CXXFLAGS="-D_GLIBCXX_USE_CXX11_ABI=0" | ||
export PKG_CXXFLAGS=$CXXFLAGS | ||
|
||
# Build arrow | ||
pushd /arrow/r | ||
|
||
rm src/RcppExports* | ||
Rscript -e "Rcpp::compileAttributes()" | ||
R CMD build --keep-empty-dirs . | ||
R CMD INSTALL $(ls | grep arrow_*.tar.gz) | ||
|
||
export _R_CHECK_FORCE_SUGGESTS_=false | ||
R CMD check $(ls | grep arrow_*.tar.gz) --as-cran --no-manual | ||
|
||
popd |
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,4 +5,5 @@ src/.clang-format | |
LICENSE.md | ||
^data-raw$ | ||
lint.sh | ||
|
||
Dockerfile | ||
.*\.tar\.gz |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,77 @@ | ||
# Licensed to the Apache Software Foundation (ASF) under one | ||
# or more contributor license agreements. See the NOTICE file | ||
# distributed with this work for additional information | ||
# regarding copyright ownership. The ASF licenses this file | ||
# to you under the Apache License, Version 2.0 (the | ||
# "License"); you may not use this file except in compliance | ||
# with the License. You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, | ||
# software distributed under the License is distributed on an | ||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||
# KIND, either express or implied. See the License for the | ||
# specific language governing permissions and limitations | ||
# under the License. | ||
|
||
FROM arrow:cpp | ||
|
||
# Configure | ||
ENV CC=gcc \ | ||
CXX=g++ | ||
|
||
# r-base includes tzdata. Get around interactive stop in that package | ||
ENV DEBIAN_FRONTEND=noninteractive | ||
|
||
# Build R | ||
# [1] https://www.digitalocean.com/community/tutorials/how-to-install-r-on-ubuntu-18-04 | ||
# [2] https://linuxize.com/post/how-to-install-r-on-ubuntu-18-04/#installing-r-packages-from-cran | ||
RUN apt update && \ | ||
apt install -y \ | ||
apt-transport-https \ | ||
software-properties-common && \ | ||
apt-key adv \ | ||
--keyserver keyserver.ubuntu.com \ | ||
--recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9 && \ | ||
add-apt-repository 'deb https://cloud.r-project.org/bin/linux/ubuntu bionic-cran35/' && \ | ||
apt install -y r-base && \ | ||
# system libs needed by core R packages | ||
apt install -y \ | ||
libgit2-dev \ | ||
libssl-dev && \ | ||
# install clang to mirror what was done on Travis | ||
apt install -y \ | ||
clang \ | ||
clang-format \ | ||
clang-tidy && \ | ||
# R CMD CHECK --as-cran needs pdflatex to build the package manual | ||
apt install -y \ | ||
texlive-latex-base && \ | ||
# Install vctrs from Github | ||
Rscript -e "install.packages('devtools', repos = 'http://cran.rstudio.com')" && \ | ||
Rscript -e "devtools::install_github('romainfrancois/vctrs@bit64')" && \ | ||
Rscript -e "devtools::install_github('r-lib/withr')" && \ | ||
Rscript -e "devtools::install_github('RcppCore/Rcpp')" && \ | ||
# R is not good at picking up dependencies and installing them automatically | ||
Rscript -e "install.packages(c( \ | ||
'Rcpp', \ | ||
'purrr', \ | ||
'assertthat', \ | ||
'fs', \ | ||
'tibble', \ | ||
'crayon', \ | ||
'testthat', \ | ||
'bit64', \ | ||
'hms', \ | ||
'lubridate'), \ | ||
repos = 'http://cran.rstudio.com')" | ||
|
||
# Tell R where it can find the source code for arrow | ||
ENV PKG_CONFIG_PATH=${PKG_CONFIG_PATH}:/build/cpp/src/arrow | ||
ENV LD_LIBRARY_PATH=/opt/conda/lib/:/build/cpp/src/arrow:/arrow/r/src | ||
ENV CXXFLAGS="-D_GLIBCXX_USE_CXX11_ABI=0" | ||
|
||
# build, install, test R package | ||
CMD /arrow/ci/docker_build_cpp.sh && \ | ||
/arrow/ci/docker_build_r.sh |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -16,6 +16,7 @@ | |
# under the License. | ||
|
||
PKG_CPPFLAGS=@cflags@ | ||
PKG_CXXFLAGS=$(C_VISIBILITY) | ||
PKG_CXXFLAGS+=$(C_VISIBILITY) | ||
This comment has been minimized.
Sorry, something went wrong.
This comment has been minimized.
Sorry, something went wrong.
jameslamb
Author
Contributor
|
||
CXX_STD=CXX11 | ||
PKG_LIBS=@libs@ -Wl,-rpath,/usr/local/lib | ||
#CXXFLAGS="-D_GLIBCXX_USE_CXX11_ABI=0" |
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
@jameslamb is this needed ? R is not happy about the
+=
here :https://travis-ci.org/romainfrancois/arrow/jobs/460309929#L2249
Can you have a look ?