Skip to content

bkiessling/computational-reproducibility-in-r

 
 

Repository files navigation

computational-reproducibility-in-r

Dieses Repo ist ein Kopie des Tutorials: http://haines-lab.com/post/2022-01-23-automating-computational-reproducibility-with-r-using-renv-docker-and-github-actions/

renv

  • anlegen von Scripten und installieren von Packages wie gewohnt
  • an Ende erzeugen wir mit renv einen Snapshot, welche Libraries und Abhängikeiten wir genutzt haben
renv::snapshot()
  • Im Project-Directory erscheint eine renv.lock-File, in der alle Libraries hinterlegt sind.
  • Wenn wir das Projekt auf einem anderen Rechner starten, können wir sämtliche Libraries und Abhängikeit ganz einfach installieren
renv::restore()

Docker

  • Wir wollen nun ein Image Docker erstellen, R darauf installieren dann alle R-Packages aus der renv.lock-File installieren. Dafür sind folgende Schritte notwendig.
  • check R Version (R --version im Terminal)
  • check der renv Version in der renv.lock-File. Suchen nach renv
  • mit diesen beiden Infos können wir eine Dockerfile erstellen
# Dockerfile

# Start with R version 4.1.0
FROM rocker/r-ver:4.1.0

# Install some linux libraries that R packages need
RUN apt-get update && apt-get install -y libcurl4-openssl-dev libssl-dev libxml2-dev

# Use renv version 0.15.2
ENV RENV_VERSION 0.15.2

# Install renv
RUN Rscript -e "install.packages('remotes', repos = c(CRAN = 'https://cloud.r-project.org'))"
RUN Rscript -e "remotes::install_github('rstudio/renv@${RENV_VERSION}')"

# Create a directory named after our project directory
WORKDIR /computational-reproducibility-in-r

# Copy the lockfile over to the Docker image
COPY renv.lock renv.lock

# Install all R packages specified in renv.lock
RUN Rscript -e 'renv::restore()'

# Default to bash terminal when running docker image
CMD ["bash"]
  • Um das Image zu erstellen, geben wir folgendes in Terminal ein:
docker build -t my-docker-image .
  • Das Image mit dem Namen my-docker-image wird erstellt.
  • Je nach Fehlermeldung, müssen ggf. noch Packages auf dem Ubuntu Server, wie z.B. libssl-dev installiert werden.
  • Um unseren Docker zu den lokalen Files zu verbinden, nutzen wir folgenden Code:
docker run -it -v ~/computational-reproducibility-in-r:/computational-reproducibility-in-r my-docker-image
  • -it startet den interactive Mode, sodas wir Befehle selber ausführen können
  • -v Flag und der folgende Pfad geben dem Docker an, das lokale Projekt mit dem Projekt in der Dockerfile zu verbinden (WORKDIR)
  • Sind die Verzeichnisse mounted

Git Actions

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages

  • R 96.9%
  • Dockerfile 3.1%