FROM rocker/geospatial:4.4
RUN export DEBIAN_FRONTEND=noninteractive; apt-get -y update \
&& apt-get install -y pandoc \
pandoc-citeproc
RUN R -e "install.packages('remotes')"
RUN R -e "install.packages('microbenchmark')"
RUN R -e "install.packages('purrr')" # map function
ENV R_CRAN_WEB="https://cran.rstudio.com/"
RUN R -e "install.packages('cowplot')" # GET function
RUN R -e "install.packages('torch')"
RUN R -e "torch::install_torch(type = 'cpu')"
RUN R -e "install.packages('PLNmodels')"
RUN R -e "install.packages('torchvision')"
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
mercurial gdal-bin libgdal-dev gsl-bin libgsl-dev \
libc6-i386
RUN R -e "install.packages('reticulate')"
RUN R -e "install.packages(c('inlabru', 'lme4', 'ggpolypath', 'RColorBrewer', 'geoR'))"
RUN R -e "install.packages(c('poissonreg'))"
RUN apt-get install -y --no-install-recommends unzip python3-pip dvipng pandoc wget git make python3-venv && \
pip3 install jupyter jupyter-cache flatlatex matplotlib && \
apt-get --purge -y remove texlive.\*-doc$ && \
apt-get clean
RUN R -e "remotes::install_github('Yu-Group/simChef')"
Instructions pour le dépot sur le site web
Cloner le dépôt git du bootcamp
Protocole https :
git clone https://github.com/StateOfTheR/finistR2024.git
Avec clés SSH : git clone git@github.com:git@github.com:StateOfTheR/finistR2024.git
Pour plus d’infos sur l’initialisation de git, la gestion des dépôts distants …
(Lien vers une doc complète)[https://docs.github.com/fr/get-started/getting-started-with-git/managing-remote-repositories].
Processus de mise en commun des ateliers
- Créer une branche propre à l’atelier nommée explicitement
mon_nom_parlant
et basculer dessus
git checkout -b mon_nom_parlant
- Créer un fichier Rmarkdown de restitution de votre atelier
fichier.Rmd
dans votre branche
git add fichier.Rmd
git commit -m "restitution atelier"
- Pousser vos modifications sur le serveur distant
git push --set-upstream origin mon_nom_parlant
ou
git push
Faire une pull request (PR) sur github
indiquer dans le message de la PR la liste des packages ou autres besoins
Quand la PR passe les tests, demander le merge.
corriger les erreurs éventuelles dans la compilation du Rmarkdown
les admins peuvent avoir à mettre à jour l’image docker
Détails du fonctionnement
Le docker
(Lien vers la fiche pense-bête)[https://www.docker.com/sites/default/files/d8/2019-09/docker-cheat-sheet.pdf]
Pour créer des images Docker en local sur sa machine, voici une liste de commandes utiles
- Pour construire une image docker, il faut créer un fichier Dockerfile qui contient la recette du Docker. Pour ce site le ficher Dockerfile a la forme suivante
puis demander la construction de l’image à l’aide de la commande
-t nom_depot_dockerhub/nom_du_repo:version . ## avec un nom docker build
et enfin pousser sur Dockerhub
/nom_du_repo:version docker push nom_depot_dockerhub
Les actions
Dans les action de Github, on peut spécifier un container docker à utiliser, c’est ce que fait la ligne container du fichier d’action suivant, utiliser pour créer ce site web
name: website
on:
push:
branches:
- main
jobs:
build:
name: Build website with rmarkdown and Julia
runs-on: ubuntu-latest
container: stateofther/r-finistr2024:0.2
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Install Julia
uses: julia-actions/setup-julia@v1
with:
version: "1.8" # Specify the Julia version you want to use
- name: Install Julia Packages
run: |
julia -e 'using Pkg; Pkg.add(["DataFrames", "DataFramesMeta", "RDatasets", "CairoMakie", "Gadfly", "Compose", "AlgebraOfGraphics"])'
- name: Additional R packages
run: |
Rscript -e "install.packages(c('tictoc', 'nimble', 'ggmcmc', 'compareMCMCs', 'nimbleHMC', 'mvtnorm'))"
Rscript -e "install.packages(c('simulator', 'simpr', 'SimEngine', 'DT', 'withr', 'bench'))"
Rscript -e "install.packages(c('future', 'furrr', 'purrr', 'cli', 'RhpcBLASctl'))"
Rscript -e "install.packages('rix', repos = c('https://b-rodrigues.r-universe.dev', 'https://cloud.r-project.org'))"
- name: Additional Python packages
run: |
pip install torch torch_geometric
pip install numpy==1.26.1
pip install scikit-learn scikit-network networkx matplotlib tqdm openpyxl pandas
- name: Generate slides
run: "quarto render"
- name: GitHub Pages action
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./_site