⚠️ Traduction non officielle - Cette documentation est une traduction communautaire non officielle de Docker.

Configurer CI/CD pour votre application R

Prérequis

Terminez toutes les sections précédentes de ce guide, en commençant par Conteneuriser une application R. Vous devez avoir un compte GitHub et un compte Docker pour compléter cette section.

Aperçu

Dans cette section, vous apprendrez à configurer et à utiliser GitHub Actions pour construire et tester votre image Docker ainsi que pour la pousser sur Docker Hub. Vous réaliserez les étapes suivantes :

  1. Créer un nouveau dépôt sur GitHub.
  2. Définir le flux de travail GitHub Actions.
  3. Exécuter le flux de travail.

Étape un : Créer le dépôt

Créez un dépôt GitHub, configurez les informations d'identification de Docker Hub et poussez votre code source.

  1. Créez un nouveau dépôt sur GitHub.

  2. Ouvrez les Paramètres du dépôt, et allez à Secrets and variables > Actions.

  3. Créez une nouvelle variable de dépôt nommée DOCKER_USERNAME avec votre ID Docker comme valeur.

  4. Créez un nouveau Jeton d'Accès Personnel (PAT) pour Docker Hub. Vous pouvez nommer ce jeton docker-tutorial. Assurez-vous que les permissions d'accès incluent Lecture et Écriture.

  5. Ajoutez le PAT comme un secret de dépôt dans votre dépôt GitHub, avec le nom DOCKERHUB_TOKEN.

  6. Dans votre dépôt local sur votre machine, exécutez la commande suivante pour changer l'origine vers le dépôt que vous venez de créer. Assurez-vous de changer your-username par votre nom d'utilisateur GitHub et your-repository par le nom du dépôt que vous avez créé.

    $ git remote set-url origin https://github.com/your-username/your-repository.git
    
  7. Exécutez les commandes suivantes pour préparer, valider et pousser votre dépôt local vers GitHub.

    $ git add -A
    $ git commit -m "my commit"
    $ git push -u origin main
    

Étape deux : Configurer le flux de travail

Configurez votre flux de travail GitHub Actions pour construire, tester et pousser l'image vers Docker Hub.

  1. Allez à votre dépôt sur GitHub, puis sélectionnez l'onglet Actions.

  2. Sélectionnez set up a workflow yourself.

    Cela vous amène à une page pour créer un nouveau fichier de flux de travail GitHub actions dans votre dépôt, sous .github/workflows/main.yml par défaut.

  3. Dans la fenêtre de l'éditeur, copiez et collez la configuration YAML suivante.

    name: ci
    
    on:
      push:
        branches:
          - main
    
    jobs:
      build:
        runs-on: ubuntu-latest
        steps:
          - name: Se connecter à Docker Hub
            uses: docker/login-action@v3
            with:
              username: ${{ vars.DOCKER_USERNAME }}
              password: ${{ secrets.DOCKERHUB_TOKEN }}
    
          - name: Configurer Docker Buildx
            uses: docker/setup-buildx-action@v3
    
          - name: Construire et pousser
            uses: docker/build-push-action@v6
            with:
              platforms: linux/amd64,linux/arm64
              push: true
              tags: ${{ vars.DOCKER_USERNAME }}/${{ github.event.repository.name }}:latest

    Pour plus d'informations sur la syntaxe YAML pour docker/build-push-action, référez-vous au README de l'action GitHub.

Étape trois : Exécuter le flux de travail

Enregistrez le fichier de flux de travail et exécutez le job.

  1. Sélectionnez Commit changes... et poussez les changements vers la branche main.

    Après avoir poussé la validation, le flux de travail démarre automatiquement.

  2. Allez à l'onglet Actions. Il affiche le flux de travail.

    La sélection du flux de travail vous montre le détail de toutes les étapes.

  3. Lorsque le flux de travail est terminé, allez à vos dépôts sur Docker Hub.

    Si vous voyez le nouveau dépôt dans cette liste, cela signifie que les actions GitHub ont poussé avec succès l'image sur Docker Hub.

Résumé

Dans cette section, vous avez appris à configurer un flux de travail GitHub Actions pour votre application R.

Informations connexes :

Prochaines étapes

Ensuite, apprenez comment vous pouvez tester et déboguer localement vos charges de travail sur Kubernetes avant de les déployer.