I buildpack supportano la configurazione idiomatica del linguaggio tramite variabili di ambiente.
Specifica della versione Python
Per impostazione predefinita, il buildpack del runtime Python utilizza l'ultima versione stabile dell'interprete Python. Se l'applicazione richiede una versione specifica, puoi specificarne una includendo un file .python-version
nella directory root dell'applicazione.
3.9.9
Uso: GOOGLE_PYTHON_VERSION
È anche possibile specificare la versione Python tramite la variabile di ambiente GOOGLE_PYTHON_VERSION
.
Se vengono impostate entrambe le configurazioni, il valore GOOGLE_PYTHON_VERSION
ha la precedenza sul file .python-version
. Per impostazione predefinita, quando sia il file .python-version
sia la variabile di ambiente GOOGLE_PYTHON_VERSION
non sono specificate, viene utilizzata la versione LTS più recente di Python.
Per configurare il buildpack in modo da utilizzare Python 3.10 durante il deployment dell'app:
pack build sample-python --builder=gcr.io/buildpacks/builder \
--env GOOGLE_PYTHON_VERSION="3.10.x"
Puoi anche utilizzare un descrittore di progetto project.toml
per codificare la variabile di ambiente insieme ai file di progetto. Consulta le istruzioni sulla creazione dell'applicazione con variabili di ambiente.
Specificare le dipendenze con pip
Il buildpack Python supporta la gestione delle dipendenze delle applicazioni tramite pip. Le dipendenze dell'applicazione devono essere indicate in un file requirements.txt
nella directory radice.
Il file requirements.txt
contiene una riga per pacchetto. Ogni riga contiene il nome del pacchetto e, facoltativamente, la versione richiesta. Per maggiori dettagli, consulta il riferimento requirements.txt
.
Di seguito è riportato un esempio di file requirements.txt
:
requests==2.20.0 numpy
Configurazione di pip in corso...
È possibile configurare il comportamento di pip utilizzando le variabili di ambiente:
pack build sample-python --builder=gcr.io/buildpacks/builder \
--env PIP_DEFAULT_TIMEOUT='60'
Dipendenze private da Artifact Registry
Un repository Python di Artifact Registry
può ospitare dipendenze private per la tua funzione Python. Quando crei un'applicazione su Cloud Build, il buildpack Python genera automaticamente le credenziali di Artifact Registry per l'account di servizio Cloud Build.
Devi solo includere l'URL di Artifact Registry nel tuo requirements.txt
senza generare ulteriori credenziali. Ad esempio:
--extra-index-url REPOSITORY_URL
sampleapp
Flask==0.10.1
google-cloud-storage
Punto di ingresso dell'applicazione
Il buildpack Python utilizza Gunicorn come server HTTP WSGI predefinito per il carico di lavoro. Le app create con il buildpack Python avviano il processo gunicorn
con impostazioni predefinite, simili all'esecuzione di:
gunicorn --bind :8080 main:app
Personalizzazione del punto di ingresso dell'applicazione
Puoi eseguire l'override dei valori predefiniti di Gunicorn e del punto di ingresso e personalizzare il comando di avvio della tua applicazione utilizzando una variabile di ambiente Procfile
o una variabile di ambiente.
Puoi creare un Procfile
con le tue impostazioni personalizzate nella directory principale.
Esempio:
web: gunicorn --bind :$PORT --workers 1 --threads 8 --timeout 0 main:app
In alternativa, puoi utilizzare la variabile di ambiente GOOGLE_ENTRYPOINT
con il comando pack
. Esempio:
pack build sample-python \
--builder gcr.io/buildpacks/builder
--env "GOOGLE_ENTRYPOINT='gunicorn --bind :$PORT main:app'"
Variabili di ambiente
Il buildpack Python supporta le seguenti variabili di ambiente per personalizzare il container
PIP_<key>
Consulta la documentazione di pip.
Esempio: PIP_DEFAULT_TIMEOUT=60
imposta --default-timeout=60
per i comandi pip
.