Accueil

Codage R dans VS Code via un conteneur Docker

Avez-vous déjà essayé de partager votre code R avec un collègue, pour ensuite passer des heures à déboguer des problèmes du type “mais ça fonctionne sur ma machine” ? Les conteneurs Docker sont comme des conteneurs maritimes pour le code : ils emballent votre environnement R, vos bibliothèques et vos dépendances dans une boîte scellée qui fonctionne de la même manière partout. De plus, vous avez accès à des dizaines de milliers d’images pré-construites sur Docker Hub, où les développeurs de logiciels publient des environnements prêts à l’emploi, vous évitant ainsi la corvée de l’installation manuelle de logiciels. Ce tutoriel vous montre comment exécuter R dans un environnement isolé et reproductible en utilisant VS Code et Docker Desktop.

Concepts Clés

Ce Dont Vous Aurez Besoin

Étape 1 : Installez Docker Desktop

Étape 2 : Installez l’extension Dev Containers

Étape 3 : Clonez le projet Vibe avec GitHub Desktop

Étape 4 : Ouvrez le projet dans VS Code

Étape 5 : Rouvrez dans le conteneur

Mac Apple Silicon : Cette image est conçue pour les processeurs Intel/AMD. Docker Desktop l’exécute par émulation, donc la première construction et R lui-même sont plus lents, mais tout fonctionne.

Remarque : Le conteneur inclut automatiquement l’extension R et le package languageserver. Le Dockerfile et le devcontainer.json gèrent cela pour vous.

Étape 6 : Comprenez l’environnement du conteneur

Vous codez maintenant à l’intérieur d’un conteneur Linux. Explorons ce que cela signifie.

pwd

Vous verrez /workspaces/vibe - c’est votre dossier de projet à l’intérieur du conteneur.

ls

Vous verrez les mêmes fichiers du projet : R/, docs/, README.md, etc. (les dossiers commençant par un point, comme .devcontainer/, sont masqués ; ls -a les affiche)

cd ..
ls

Vous ne verrez que vibe/ - le conteneur est isolé. Vous ne pouvez pas accéder aux autres dossiers de votre ordinateur, au Bureau ou aux Documents. Cette isolation garantit que votre environnement R est propre et reproductible.

cd vibe

Étape 7 : Exécutez du code R ligne par ligne

Le conteneur a R pré-installé avec des packages courants. Exécutons un script d’analyse de données simple.

Étape 8 : Exécutez l’application

Le projet inclut une application Shiny de démonstration qui crée un histogramme interactif.

Étape 9 : Effectuez une modification simple

Modifions l’application pour voir comment fonctionne le développement.

titlePanel("My First R Docker App"),

Étape 10 : Comprenez le Dockerfile (Optionnel)

# choose a Dockerhub base image with R, Shiny Server, and tidyverse packages
FROM rocker/shiny-verse:latest

# 1. System deps commonly needed by R packages
RUN apt-get update && apt-get install -y \
    libcurl4-openssl-dev libssl-dev libxml2-dev git curl && \
    rm -rf /var/lib/apt/lists/*

# 2. R packages for VS Code integration: language server + debugger
RUN R -q -e 'install.packages(c("rstudioapi", "languageserver"), repos="https://cloud.r-project.org")'

# 3. Install Node.js LTS from NodeSource
RUN curl -fsSL https://deb.nodesource.com/setup_lts.x | bash - \
    && apt-get install -y nodejs \
    && npm install -g npm@latest

# 4. Install Claude Code globally (newer npm blocks its setup script unless allowed)
RUN npm config set allow-scripts=@anthropic-ai/claude-code --location=global \
    && npm install -g @anthropic-ai/claude-code

# 5. Give shiny passwordless sudo for updating Claude Code from VS Code
RUN echo 'shiny ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers && \
    rm -rf /var/lib/apt/lists/*

# Expose Shiny server port
EXPOSE 3838

Parties clés :

Autres images Rocker que vous pouvez utiliser :

Après avoir modifié l’image de base, reconstruisez le conteneur pour appliquer les modifications.

Étape 11 : Installez des packages R dans l’image Docker (Optionnel)

Les packages installés via la console R (install.packages()) sont temporaires et disparaissent lorsque vous reconstruisez le conteneur. Pour rendre les packages permanents, ajoutez-les au Dockerfile.

library(data.table)

S’il se charge sans erreurs, le package est installé de manière permanente.

Prochaines Étapes

Dépannage

Aperçu du flux de travail

Cette configuration vous offre un environnement de développement R professionnel :

Flux de travail quotidien

Une fois que tout est configuré, voici votre routine quotidienne :

  1. Démarrez Docker Desktop - Ouvrez l’application et attendez l’indicateur de statut vert (Docker doit être en cours d’exécution)
  2. Ouvrez VS Code - Lancez VS Code et ouvrez votre dossier de projet
  3. Rouvrez dans le conteneur - Si vous n’êtes pas déjà dans le conteneur, cliquez sur l’icône >< (en bas à gauche) et sélectionnez Reopen in Container
  4. Écrivez et exécutez du code - Modifiez les fichiers .R, exécutez ligne par ligne avec Ctrl+Enter/Cmd+Enter, ou exécutez des applications Shiny avec le bouton ▶ Run Shiny App
  5. Enregistrez votre travail - Vos fichiers de code (.R, .Rmd) sont enregistrés sur votre ordinateur et persistent d’une session à l’autre
  6. Committez et poussez - Utilisez GitHub Desktop pour committer vos modifications et pousser vers le dépôt

Qu’est-ce que Docker Desktop ?

Docker Desktop est une application qui facilite l’utilisation de Docker sur votre ordinateur. Elle fournit les services d’arrière-plan dont Docker a besoin, ainsi qu’une fenêtre visuelle dans laquelle vous pouvez voir et gérer vos conteneurs, vos images, votre stockage et les autres ressources Docker.

Vous pouvez voir Docker Desktop comme le centre de contrôle de vos conteneurs. Lorsque vous ouvrez Docker Desktop, il démarre le moteur Docker. Le moteur Docker est la partie de Docker qui crée et exécute réellement les conteneurs. En général, vous n’avez pas besoin d’interagir directement avec le moteur, car Docker Desktop le gère pour vous.

Que fait Docker Desktop ?

Docker Desktop remplit plusieurs rôles importants :

Le rôle de Docker Desktop dans ce tutoriel

Trois éléments travaillent ensemble :

  1. Docker Desktop exécute le moteur Docker sur votre ordinateur.
  2. VS Code vous fournit l’éditeur dans lequel vous écrivez et exécutez du code R.
  3. Le Dev Container fournit un environnement Linux préparé contenant R, des packages R et les outils utilisés par ce projet.

Lorsque vous choisissez Reopen in Container, VS Code demande à Docker Desktop de construire ou de démarrer le conteneur du projet. C’est toujours votre ordinateur qui fait tourner l’application, mais l’environnement R se trouve à l’intérieur du conteneur. Ainsi, la version de R, les packages et les outils système restent séparés du reste de votre ordinateur.

Docker Desktop ne remplace ni VS Code, ni R, ni votre navigateur web. Il fournit l’environnement qui exécute le conteneur. VS Code est l’endroit où vous travaillez, R est le langage que vous utilisez, et votre navigateur est l’endroit où vous affichez l’application Shiny.

Pourquoi utiliser Docker Desktop ?

Installer R et tous les packages nécessaires directement sur votre ordinateur peut parfois provoquer des conflits de versions. Un projet peut avoir besoin d’une version de package différente de celle d’un autre projet. Docker Desktop aide à éviter ces conflits en donnant à chaque projet son propre environnement contrôlé.

Par exemple, si un camarade de classe utilise les mêmes fichiers de projet et les mêmes paramètres Docker, Docker peut construire un environnement très proche du vôtre. Il devient alors moins probable que vous rencontriez une erreur causée uniquement par des versions de logiciels différentes. Votre code R et vos fichiers de projet restent sur votre ordinateur, tandis que les outils nécessaires pour les exécuter sont organisés à l’intérieur du conteneur.

Docker Desktop doit être ouvert et en cours d’exécution avant que vous construisiez ou rouvriez ce projet dans un conteneur. Si Docker Desktop est fermé, VS Code ne peut pas démarrer le conteneur, et vous verrez peut-être une erreur indiquant que Docker n’est pas en cours d’exécution.


Créé par Steven Ge le 7 décembre 2025.