Conservation de l’État du SuperLink¶
Par défaut, le conteneur Flower SuperLink conserve son état en mémoire. Lorsque vous utilisez la flag Docker --rm, l’état n’est pas persisté entre les démarrages du conteneur.
Si vous souhaitez conserver l’état du SuperLink sur votre système hôte, il suffit de spécifier un répertoire où vous voulez sauvegarder le fichier sur votre système hôte et un nom pour le fichier de base de données.
Par défaut, le conteneur SuperLink s’exécute avec un utilisateur non-root appelé app et ayant l’ID d’utilisateur 49999. Lorsque vous travaillez avec Docker sur Linux, il est recommandé de créer un nouveau répertoire et de définir l’ID d’utilisateur à 49999 pour s’assurer que le répertoire monté a les permissions appropriées.
Si vous souhaitez supprimer plus tard le répertoire, vous pouvez modifier l’ID d’utilisateur à nouveau en exécutant sudo chown -R $USER:$(id -gn) state.
Exemple¶
Dans l’exemple ci-dessous, nous créons un nouveau répertoire appelé state, changeons l’ID d’utilisateur et disons à Docker via la flag --volume de monter le répertoire local state dans le répertoire /app/state du conteneur. Enfin, nous utilisons la flag --database pour spécifier le nom du fichier de base de données.
$ mkdir state
$ sudo chown -R 49999:49999 state
$ docker run --rm \
--volume ./state/:/app/state flwr/superlink:1.31.0 \
--database state/state.db \
<additional-args>
Dès que le conteneur SuperLink démarre, un fichier state.db est créé dans le répertoire state sur votre système hôte. Si le fichier existe déjà, le conteneur SuperLink tente de restaurer l’état à partir du fichier. Pour démarrer le conteneur SuperLink avec une base de données vide, assurez-vous qu’il n’y a pas de base de données appelée state.db dans le répertoire state (rm state.db) avant d’exécuter la commande docker run ci-dessus.