Configura la build ed esegui le immagini

Buildpacks utilizza un builder predefinito, composto da tutti i componenti necessari per eseguire una build del tuo servizio, incluse un'immagine build e run:

  • Immagine build: utilizzata dall'immagine del builder per creare l'ambiente di build in cui viene eseguito il lifecycle dei buildpack. È qui che la tua applicazione o funzione è preparata per la containerizzazione.
  • Esegui immagine: l'immagine di base da cui viene creata l'immagine container del tuo servizio. Questa è l'immagine che ospita l'applicazione o la funzione creata.

Entrambe le immagini possono essere personalizzate ed estese in base alle tue esigenze. Ad esempio, puoi personalizzare le immagini per aggiungere i pacchetti necessari per creare il tuo servizio o per installare pacchetti di sistema in modo che siano disponibili durante l'esecuzione del servizio.

Prima di iniziare

Puoi utilizzare l'interfaccia a riga di comando pack per creare localmente il tuo servizio in un'immagine container.

Prima di iniziare

  1. Installa Docker Community Edition (CE) sulla tua workstation. Docker è utilizzato da pack come generatore di immagini OCI.
  2. Installa l'interfaccia a riga di comando Pack.
  3. Installa lo strumento Controllo del codice sorgente Git per recuperare l'applicazione di esempio da GitHub.

Personalizza la build ed esegui le immagini

Gli strumenti Buildpacks utilizzano un'immagine del builder per creare il servizio in un'immagine container. Al termine del processo di compilazione, l'applicazione o la funzione viene inserita in un'immagine di esecuzione. Scopri di più sul processo di compilazione alla pagina Concetti di Buildpacks.

Estensione dell'immagine del builder

Per personalizzare l'immagine predefinita dello strumento di creazione:

  1. Crea un'istanza builder.Dockerfile personalizzata dall'immagine del generatore predefinita. Devi specificare il tag per la versione dello strumento di creazione che supporta l'immagine di base. Ad esempio, il tag immagine di base :v1 non è supportato dal tag del builder di :google-22.

    Esempio:

    FROM gcr.io/buildpacks/builder
    USER root
    RUN apt-get update && apt-get install -y --no-install-recommends \
      subversion && \
      apt-get clean && \
      rm -rf /var/lib/apt/lists/*
    USER cnb
    
  2. Crea la tua immagine del builder personalizzata dal file builder.Dockerfile:

    docker build -t BUILDER_IMAGE_NAME -f builder.Dockerfile .
    

    Sostituisci BUILDER_IMAGE_NAME con il nome che hai scelto per l'immagine del builder personalizzata.

  3. Esegui il comando pack build con la tua immagine del builder personalizzata per creare la nuova immagine container della tua applicazione o funzione:

    pack build SERVICE_IMAGE_NAME --builder BUILDER_IMAGE_NAME
    

    Sostituisci:

    • SERVICE_IMAGE_NAME con il nome scelto per l'immagine dell'applicazione o della funzione.
    • BUILDER_IMAGE_NAME con il nome della tua immagine del builder personalizzata.

Estensione dell'immagine di esecuzione

Per personalizzare l'immagine container di esecuzione predefinita:

  1. Crea un'istanza run.Dockerfile personalizzata dall'immagine di esecuzione predefinita. Devi specificare il tag per la versione dello strumento di creazione che supporta l'immagine di esecuzione. Ad esempio, il tag dell'esecuzione immagine :v1 non è supportato dal tag del builder di :google-22.

    Esempio:

    FROM gcr.io/buildpacks/gcp/run
    USER root
    RUN apt-get update && apt-get install -y --no-install-recommends \
      imagemagick && \
      apt-get clean && \
      rm -rf /var/lib/apt/lists/*
    USER
    
  2. Crea la tua immagine di esecuzione personalizzata dal file run.Dockerfile:

    docker build -t RUN_IMAGE_NAME -f run.Dockerfile .
    

    Sostituisci RUN_IMAGE_NAME con il nome che scegli per l'immagine di esecuzione personalizzata.

  3. Esegui il comando pack build con la tua immagine di esecuzione personalizzata per creare la nuova immagine container della tua applicazione o funzione:

    pack build SERVICE_IMAGE_NAME --builder gcr.io/buildpacks/builder:v1 --run-image RUN_IMAGE
    

    Sostituisci:

    • SERVICE_IMAGE_NAME con il nome scelto per l'immagine dell'applicazione o della funzione.
    • RUN_IMAGE_NAME con il nome dell'immagine di esecuzione personalizzata.