This Dockerfile works for me. You?
FROM rocker/tidyverse
WORKDIR /tpot_test
RUN apt-get -y update
RUN apt-get -y upgrade
RUN apt-get -y install git
RUN R -e "install.packages('reticulate')"
RUN R -e "reticulate::install_python()"
RUN R -e "reticulate::install_miniconda()"
RUN R -q -e 'install.packages("remotes")'
RUN R -q -e 'reticulate::conda_install("r-reticulate", c("python=3.8.13", "numpy<1.24"))'
RUN R -q -e 'reticulate::conda_install("r-reticulate", "tpot", pip = TRUE)'
COPY main.R main.R
CMD ["Rscript", "main.R"]
I don't know what change did the trick. Perhaps using the rocker/tidyverse
image so that devtools
gets installed?
I've always set a WORKDIR
and I notice you didn't. Perhaps that?
A general piece of advice is that docker exec
is a great tool for debugging Dockerfiles. You can start from a base image (i.e. rocker/tidyverse
), docker exec
into it, test commands one by one until you can get the whole sequence to work, and then code this sequence to the Dockerfile.
Here is the output:
/root/.local/share/r-miniconda/envs/r-reticulate/lib/python3.8/site-packages/tpot/builtins/__init__.py:36: UserWarning: Warning: optional dependency `torch` is not available. - skipping import of NN models.
warnings.warn("Warning: optional dependency `torch` is not available. - skipping import of NN models.")
[1] "setosa" "setosa" "setosa" "setosa" "setosa"
[6] "setosa" "setosa" "setosa" "setosa" "setosa"
[11] "setosa" "setosa" "setosa" "setosa" "setosa"
[16] "setosa" "setosa" "setosa" "setosa" "setosa"
[21] "setosa" "setosa" "setosa" "setosa" "setosa"
[26] "setosa" "setosa" "setosa" "setosa" "setosa"
[31] "setosa" "setosa" "setosa" "setosa" "setosa"
[36] "setosa" "setosa" "setosa" "setosa" "setosa"
[41] "setosa" "setosa" "setosa" "setosa" "setosa"
[46] "setosa" "setosa" "setosa" "setosa" "setosa"
[51] "versicolor" "versicolor" "versicolor" "versicolor" "versicolor"
[56] "versicolor" "versicolor" "versicolor" "versicolor" "versicolor"
[61] "versicolor" "versicolor" "versicolor" "versicolor" "versicolor"
[66] "versicolor" "versicolor" "versicolor" "versicolor" "versicolor"
[71] "versicolor" "versicolor" "versicolor" "versicolor" "versicolor"
[76] "versicolor" "versicolor" "versicolor" "versicolor" "versicolor"
[81] "versicolor" "versicolor" "versicolor" "virginica" "versicolor"
[86] "versicolor" "versicolor" "versicolor" "versicolor" "versicolor"
[91] "versicolor" "versicolor" "versicolor" "versicolor" "versicolor"
[96] "versicolor" "versicolor" "versicolor" "versicolor" "versicolor"
[101] "virginica" "virginica" "virginica" "virginica" "virginica"
[106] "virginica" "virginica" "virginica" "virginica" "virginica"
[111] "virginica" "virginica" "virginica" "virginica" "virginica"
[116] "virginica" "virginica" "virginica" "virginica" "virginica"
[121] "virginica" "virginica" "virginica" "virginica" "virginica"
[126] "virginica" "virginica" "virginica" "virginica" "virginica"
[131] "virginica" "virginica" "virginica" "versicolor" "virginica"
[136] "virginica" "virginica" "virginica" "virginica" "virginica"
[141] "virginica" "virginica" "virginica" "virginica" "virginica"
[146] "virginica" "virginica" "virginica" "virginica" "virginica"