Created
August 18, 2021 10:30
-
-
Save BerriJ/3a793e167886d915aae4b93a1ba2eb54 to your computer and use it in GitHub Desktop.
Dockerfile vscDebugger Problem
This file contains hidden or 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 ubuntu:focal | |
| SHELL ["/bin/bash", "-c"] | |
| ENV R_VERSION=4.1.1 \ | |
| # See https://packagemanager.rstudio.com/client/#/repos/1/overview | |
| R_REPOS=https://packagemanager.rstudio.com/all/__linux__/focal/4526215 \ | |
| DISPLAY=:0 \ | |
| TZ=Europe/Berlin | |
| ARG DEBIAN_FRONTEND=noninteractive | |
| # Ubuntu Setup | |
| RUN apt-get update &&\ | |
| apt-get -y --no-install-recommends install \ | |
| software-properties-common \ | |
| git \ | |
| build-essential \ | |
| tar \ | |
| curl \ | |
| dirmngr \ | |
| gnupg-agent \ | |
| fontconfig \ | |
| pandoc \ | |
| perl \ | |
| python3-pip \ | |
| wget \ | |
| libcurl4-openssl-dev \ | |
| openssl \ | |
| libssl-dev \ | |
| libmagick++-dev \ | |
| libpoppler-cpp-dev \ | |
| netbase \ | |
| libxml2-dev \ | |
| gdb \ | |
| libgsl-dev \ | |
| libudunits2-dev \ | |
| libgdal-dev \ | |
| libharfbuzz-dev \ | |
| libfribidi-dev \ | |
| vim \ | |
| cargo \ | |
| locales &&\ | |
| locale-gen en_US.UTF-8 | |
| # Install R | |
| RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys \ | |
| E298A3A825C0D65DFD57CBB651716619E084DAB9 \ | |
| && add-apt-repository 'deb https://cloud.r-project.org/bin/linux/ubuntu focal-cran40/' \ | |
| && apt-get -y install --no-install-recommends r-base=${R_VERSION}* r-base-core=${R_VERSION}* \ | |
| r-recommended=${R_VERSION}* r-base-dev=${R_VERSION}* | |
| # This does not work: | |
| RUN Rscript -e "install.packages('devtools', repos= '$R_REPOS')" | |
| RUN Rscript -e "remotes::install_github('ManuelHentschel/[email protected]', repos= '$R_REPOS')" | |
| # This works: | |
| # RUN Rscript -e "remotes::install_github('ManuelHentschel/[email protected]', repos= '$R_REPOS')" | |
| # Set the default shell to zsh rather than bash | |
| ENTRYPOINT [ "/bin/zsh" ] |
Author
Thank you! In particular for the dependabot hint.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@BerriJ Thank you very much for your detailed explanation.
I also think that complex images with several different languages installed generally need to be built by yourself.
However, it seems that
rocker/r-veralso includes scripts to install pip and tlmgr packages. (I don't know if it fits your use case)https://github.com/rocker-org/rocker-versioned2/blob/30fca60a9241fc1e3abc8ec9f16d4639f4343f29/scripts/install_python.sh
https://github.com/rocker-org/rocker-versioned2/blob/326dfed8cc12218e1bc3c28926eb811127e50625/scripts/install_texlive.sh
For example,
rocker/verse, which already run theinstall_texlive.sh, seems to be quite widely used when R is used with latex. (I don't use latex myself and I'm not familiar with it, so I apologize if I'm wrong.)FYI, as you may know, in general, if you specify the Digest of an image, the pulled image will always be the same, and on GitHub, you can set dependabot to detect Digest changes and automatically create a PR when a new image is pushed.
FROM rocker/r-ver:4.1.1@sha256:f060daf95622ba9b8271dc6067036f98ed92bcd876b56827e4c3260ca162585dhttps://dependabot.com/blog/dependabot-now-supports-docker/