Comment construire des images Docker Flower localement¶
Flower fournit des images Docker pré-fabriquées sur Docker Hub qui incluent toutes les dépendances nécessaires pour exécuter SuperLink, SuperNode ou ServerApp. Vous pouvez également créer vos propres images Docker personnalisées à partir de zéro avec une version différente de Python ou d’une distribution Linux (Ubuntu/Alpine) si cela est ce que vous avez besoin. Dans ce guide, nous expliquerons quelles images existent et comment les construire localement.
Avant de commencer, nous devons rencontrer quelques prérequis dans notre environnement de développement local.
Clonez le dépôt
flower.$ git clone --depth=1 https://github.com/flwrlabs/flower.git && cd flower
Vérifiez que le démon Docker tourne.
Les instructions de construction qui assemblent les images se trouvent dans les fichiers Docker respective. Vous pouvez les trouver dans les sous-répertoires de
framework/docker.Flower et Docker images sont configurées via des arguments de construction. À travers les arguments de construction, nous pouvons rendre la création d’images plus flexible. Par exemple, dans l’image de base, nous pouvons spécifier la version de Python à installer en utilisant l’argument de construction
PYTHON_VERSION. Certains des arguments de construction ont des valeurs par défaut, tandis que d’autres doivent être spécifiés lors de la construction de l’image. Tous les arguments de construction disponibles pour chaque image sont listés dans une des tables ci-dessous.
Construire l’image de base¶
Argument de construction |
Description |
Required |
Exemple |
|---|---|---|---|
|
La distribution Linux à utiliser comme image de base. |
No |
|
|
Version de la distribution Linux. |
No |
|
|
Version de |
No |
|
|
Version de |
Yes |
|
|
Version de |
Yes |
|
|
Version de Flower à installer. |
Yes |
|
|
Le paquet Flower à installer. |
No |
|
|
Un direct reference sans spécificateur |
No |
L’exemple suivant crée une image base Ubuntu/Alpine avec Python 3.11.0, pip |pip_version|, setuptools |setuptools_version| et Flower |stable_flwr_version|:
$ cd framework/docker/base/<ubuntu|alpine>
$ docker build \
--build-arg PYTHON_VERSION=3.11.0 \
--build-arg FLWR_VERSION=1.31.0 \
--build-arg PIP_VERSION=26.0.1 \
--build-arg SETUPTOOLS_VERSION=82.0.0 \
-t flwr_base:0.1.0 .
Dans cet exemple, nous spécifions notre nom d’image comme flwr_base et la balise comme 0.1.0. Rappelez-vous que les arguments de construction ainsi que le nom et la balise peuvent être adaptés à vos besoins. Ces valeurs servent uniquement d’exemple.
Construire une image binaire Flower¶
Argument de construction |
Description |
Required |
Exemple |
|---|---|---|---|
|
Le nom du dépôt de l’image de base. |
No |
|
|
La balise de l’image de base Flower. |
Yes |
|
Par exemple, pour construire une image SuperLink avec la dernière version de Flower, Python 3.11 et Ubuntu 22.04, exécutez les commandes suivantes:
$ cd framework/docker/superlink
$ docker build \
--build-arg BASE_IMAGE=1.31.0-py3.11-ubuntu22.04 \
-t flwr_superlink:0.1.0 .
Si vous souhaitez utiliser votre propre image de base au lieu de l’image officielle de Flower, tout ce que vous devez faire est de définir l’argument de construction BASE_REPOSITORY sur flwr_base (comme nous avons spécifié ci-dessus).
$ cd framework/docker/superlink/
$ docker build \
--build-arg BASE_REPOSITORY=flwr_base \
--build-arg BASE_IMAGE=0.1.0
-t flwr_superlink:0.1.0 .
Après avoir créé l’image, nous pouvons tester si l’image fonctionne :
$ docker run --rm flwr_superlink:0.1.0 --help
Exemples de référence directe¶
# main branch
git+https://github.com/flwrlabs/flower.git@main#subdirectory=framework
# commit hash
git+https://github.com/flwrlabs/flower.git@4bc1bca3d0576dd2233972d9d91c2c7e8eb03edd#subdirectory=framework
# tag
git+https://github.com/flwrlabs/flower.git@1.31.0#subdirectory=framework
# artifact store
https://artifact.flower.ai/py/main/latest/flwr-1.31.0-py3-none-any.whl