BOINC dans un conteneur Docker

2020/12/30

Categories: logiciel Tags: boinc

J’ai déjà écrit un article sur ce qu’était BOINC sans en détailler l’installation. L’installation classique de BOINC passe par le téléchargement du client BOINC, mais il est aussi possible d’utiliser BOINC dans un conteneur docker.

Cette méthode d’installation est plus facile à scripter et à automatiser, ce qui la rend très intéressante sur un serveur headless par exemple.

Installation de docker

Tout d’abord, installons docker et docker-compose. Sur une distribution linux utilisant le gestionnaire de paquets apt (comme Debian ou Ubuntu), il suffit d’installer les paquets docker.io et docker-compose.

sudo apt install docker.io docker-compose

Assurez vous que le service docker est lancé avec :

sudo systemctl enable --now docker

Il est aussi conseillé d’ajouter l’utilisateur courant au groupe docker afin de ne pas avoir à passer par sudo pour lancer contrôler docker (remplacez $USER par votre nom d’utilisateur)

usermod -a -G boinc $USER

Reconnectez-vous ou redémarrer afin que les nouveaux droits soit appliqués.

Lancement du conteneur docker

Dans le dossier de votre choix, créez un fichier docker-compose.yml avec le contenu suivant :

version: '2'
services:
  boinc:
    image: boinc/client:latest
    container_name: boinc
    restart: always
    network_mode: host
    pid: host
    volumes:
      - /opt/appdata/boinc:/var/lib/boinc
    environment:
      - BOINC_GUI_RPC_PASSWORD=$BOINC_PASSWORD
      - BOINC_CMD_LINE_OPTIONS=--allow_remote_gui_rpc

Si vous utilisez une architecture ARM, vous devrez choisir une autre image :

Créez ensuite dans le même dossier un fichier nommé .env contenant le mot de passe de BOINC :

BOINC_PASSWORD=motdepasse

Vous pourrez ensuite lancer le conteneur avec

docker-compose up -d

Une autre commande à connaître est la commande pour arrêter le conteneur

docker-compose down

Gestion de BOINC

Pour pouvoir gérer le client BOINC lancé avec docker, vous avez deux possibilités :

Via un client BOINC sur un autre ordinateur

À partir du client BOINC d’un autre ordinateur, avec Fichier > sélectionner un ordinateur.

Vous pourrez entrer l’adresse IP de l’ordinateur cible ainsi que le mot de passe renseigné précédemment afin de vous connecter.

Via la commande boinccmd

Il est aussi possible de contrôler directement BOINC avec l’utilitaire boinccmd.

Pour se connecter à un compte existant pour un certain projet :

docker exec -it docker boinccmd --lookup_account $URL $EMAIL $PASSWORD
# si un compte existe, une clé s'affichera
docker exec -it docker boinccmd --project_attach $URL $KEY

Pour créer un compte pour un certain projet :

docker exec -it docker boinccmd --create_account $URL $EMAIL $PASSWORD $USERNAME

Pour se connecter à un gestionnaire de comptes (https://bam.boincstats.com par exemple) :

docker exec -it boinc boinccmd --join_acct_mgr $URL $USERNAME $PASSWORD

Pour surveiller l’état de BOINC :

docker exec -it boinc boinccmd --get_simple_gui_info

Liens

>> Home