Knative Serving accetta le immagini container create con qualsiasi strumento in grado di generarle, purché rispettino il contratto del contenitore.
In particolare, il codice deve rimanere in ascolto delle richieste HTTP sulla porta definita dalla variabile di ambiente PORT
. Questa variabile di ambiente PORT
viene inserita automaticamente da Knative serving nel container.
Questa pagina descrive diversi modi per creare immagini contenitore:
- Utilizzo di un Dockerfile
- Utilizzo dei buildpack
Creazione utilizzando un Dockerfile
Se utilizzi i file Dockerfile, puoi utilizzare uno dei seguenti metodi per la compilazione:
- Esegui la compilazione utilizzando Cloud Build
- Esegui il build in locale utilizzando Docker
Creazione di pacchetti con Cloud Build
Per creare l'immagine su Google Cloud:
Vai alla cartella contenente le origini e il Dockerfile.
Esegui il comando:
gcloud builds submit --tag IMAGE_URL
Sostituisci IMAGE_URL con un riferimento all'immagine del container, ad esempio
gcr.io/cloudrun/hello
.
Per istruzioni dettagliate su Cloud Build, consulta Eseguire il deployment in Knative serving.
Per suggerimenti su come migliorare il rendimento delle build, consulta Accelerare le build
Creazione di build in locale ed esecuzione di push utilizzando Docker
Se hai installato Docker localmente, puoi utilizzare docker build
anziché Cloud Build o Buildpacks.
Prima di compilare le sorgenti in un'immagine container ("containerizzazione") utilizzando Docker, è necessario che sia presente un Dockerfile insieme alle sorgenti. Le istruzioni riportate di seguito utilizzano Container Registry come registro delle immagini.
Per creare l'immagine container utilizzando Docker:
Vai alla cartella contenente le origini e
Dockerfile
.Esegui il comando:
docker build . --tag IMAGE_URL
Sostituisci IMAGE_URL con un riferimento all'immagine del container, ad esempio
gcr.io/cloudrun/hello
.Se non hai ancora configurato Docker in modo che utilizzi Google Cloud CLI per autenticare le richieste a Container Registry, fallo ora utilizzando il comando:
gcloud auth configure-docker
Devi eseguire questa operazione prima di poter eseguire il push o il pull delle immagini utilizzando Docker. Dovrai farlo solo una volta.
Esegui il push dell'immagine del contenitore in Container Registry:
docker push IMAGE_URL
Sostituisci IMAGE_URL con un riferimento all'immagine del container, ad esempio
gcr.io/cloudrun/hello
.
Per escludere i file locali da questa procedura, segui le istruzioni per il
file di configurazione .dockerignore
.
Creazione utilizzando Buildpacks
Per informazioni complete sui buildpack, visita il sito web di Buildpacks. Google fornisce un insieme di buildpack compatibili con CNCF che generano codice sorgente in immagini container progettate per essere eseguite sulle piattaforme di container di Google Cloud, incluso il servizio Knative.
Le seguenti piattaforme sono attualmente supportate:
- Vai
- Node.js
- Python
- Java
- .NET Core
Creazione con Buildpacks utilizzando Cloud Build
Per eseguire il build con un buildpack:
Vai alla cartella contenente le origini.
Esegui il comando:
gcloud builds submit --pack image=IMAGE_URL
Sostituisci IMAGE_URL con l'URL dell'immagine del contenitore, ad esempio
gcr.io/myproject/myservice
.Attendi il completamento della build.
Creazione con Buildpack utilizzando la riga di comando pack
Per eseguire il build utilizzando il comando pack:
Se non lo hai ancora fatto, installa Docker.
Se non hai ancora configurato Docker in modo che utilizzi Google Cloud CLI per autenticare le richieste a Container Registry, fallo ora utilizzando il comando:
gcloud auth configure-docker
Devi eseguire questa operazione prima di poter eseguire il push o il pull delle immagini utilizzando Docker. Dovrai farlo solo una volta.
Se non lo hai ancora fatto, installa
pack
.Vai alla cartella contenente le origini.
Esegui il seguente comando per eseguire il build e il push nel tuo registry dei container:
pack build --publish IMAGE_URL
Sostituisci IMAGE_URL con un riferimento all'immagine del container, ad esempio
gcr.io/cloudrun/hello
.Attendi il completamento di
pack
.
Per ulteriori informazioni, leggi le istruzioni riportate in Creazione di un'applicazione.
Passaggi successivi
Per scoprire di più sul contratto che i contenitori devono rispettare per essere dipiazzati in Knative Serving, consulta Contratto del contenitore.
Per eseguire il deployment dei container creati in Knative serving, segui la sezione Eseguire il deployment dei servizi.
Per automatizzare le build e i deployment dei tuoi servizi di pubblicazione Knative utilizzando gli trigger di Cloud Build, configura il deployment continuo.