Les buildpacks sont compatibles avec la configuration idiomatique du langage via des variables d'environnement.
Spécifier la version de Python
Par défaut, le buildpack d'exécution Python utilise la dernière version stable de l'interpréteur Python. Si votre application nécessite une version spécifique, vous pouvez en spécifier une en incluant un fichier .python-version
dans le répertoire racine de l'application.
3.9.9
À l'aide de GOOGLE_PYTHON_VERSION
Il est également possible de spécifier la version de Python via la variable d'environnement GOOGLE_PYTHON_VERSION
.
Si les deux options sont spécifiées, la valeur de GOOGLE_PYTHON_VERSION
est prioritaire sur le fichier .python-version
. Par défaut, si aucune des options n'est spécifiée (ni le fichier .python-version
, ni la variable d'environnement GOOGLE_PYTHON_VERSION
), la dernière version LTS de Python est utilisée.
Procédez comme suit pour configurer le buildpack afin d'utiliser Python 3.10 lors du déploiement de votre application :
pack build sample-python --builder=gcr.io/buildpacks/builder \
--env GOOGLE_PYTHON_VERSION="3.10.x"
Vous pouvez également utiliser un descripteur de projet project.toml
pour encoder la variable d'environnement avec vos fichiers de projet. Consultez les instructions décrivant la compilation de l'application avec des variables d'environnement.
Spécifier des dépendances avec pip
Le buildpack Python est compatible avec la gestion des dépendances d'application à l'aide de pip. Les dépendances de votre application doivent être déclarées dans un fichier requirements.txt
placé dans le répertoire racine.
Le fichier requirements.txt
contient une ligne par package. Chaque ligne contient le nom du package et, éventuellement, la version demandée. Pour en savoir plus, consultez la documentation de référence sur requirements.txt
.
Voici un exemple de fichier requirements.txt
:
requests==2.20.0 numpy
Configurer pip
Il est possible de configurer le comportement de pip à l'aide de variables d'environnement :
pack build sample-python --builder=gcr.io/buildpacks/builder \
--env PIP_DEFAULT_TIMEOUT='60'
Dépendances privées d'Artifact Registry
Un dépôt Python Artifact Registry peut héberger des dépendances privées pour votre fonction Python. Lors de la compilation d'une application sur Cloud Build, le buildpack Python génère automatiquement des identifiants Artifact Registry pour le compte de service Cloud Build.
Il vous suffit d'inclure l'URL Artifact Registry dans votre fichier requirements.txt
sans générer d'identifiants supplémentaires. Exemple :
--extra-index-url REPOSITORY_URL
sampleapp
Flask==0.10.1
google-cloud-storage
Point d'entrée de l'application
Le buildpack Python utilise Gunicorn comme serveur HTTP WSGI par défaut pour votre charge de travail. Les applications créées avec le buildpack Python lancent le processus gunicorn
avec des paramètres par défaut, semblables à ceux de l'exécution :
gunicorn --bind :8080 main:app
Personnaliser le point d'entrée de l'application
Vous pouvez remplacer les valeurs par défaut de Gunicorn et les valeurs par défaut de entrypoint et personnaliser la commande de démarrage de votre application à l'aide d'une variable d'environnement Procfile
ou d'une variable d'environnement.
Vous pouvez créer un fichier Procfile
avec vos paramètres personnalisés dans le répertoire racine.
Exemple :
web: gunicorn --bind :$PORT --workers 1 --threads 8 --timeout 0 main:app
Vous pouvez également utiliser la variable d'environnement GOOGLE_ENTRYPOINT
avec la commande pack
. Exemple :
pack build sample-python \
--builder gcr.io/buildpacks/builder
--env "GOOGLE_ENTRYPOINT='gunicorn --bind :$PORT main:app'"
Variables d'environnement
Le buildpack Python est compatible avec les variables d'environnement suivantes, afin de personnaliser votre conteneur :
PIP_<key>
Consultez la documentation sur pip.
Exemple : PIP_DEFAULT_TIMEOUT=60
permet de définir le paramètre --default-timeout=60
pour les commandes pip
.