Configura le immagini di compilazione ed esecuzione

Buildpack utilizza un builder predefinito, costituito da tutti i componenti necessari per eseguire una compilazione del servizio, incluse un'immagine di compilazione e di esecuzione:

  • Immagine di compilazione: utilizzata dall'immagine del generatore per creare l'ambiente di compilazione in cui viene eseguito il ciclo di vita del buildpack. È qui che la tua applicazione o funzione viene preparata per la contenimento.
  • Esegui immagine: l'immagine di base da cui viene creata l'immagine container del servizio. Si tratta dell'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 la compilazione del servizio o per installare i pacchetti di sistema in modo che siano disponibili quando il servizio viene eseguito.

Prima di iniziare

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

Prima di iniziare

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

Personalizzare le immagini di compilazione ed esecuzione

I buildpack utilizzano un'immagine del generatore 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ù sulla processo di compilazione in Concetti di Buildpack.

Estensione dell'immagine del generatore

Per personalizzare l'immagine del generatore predefinita:

  1. Crea un builder.Dockerfile personalizzato dall'immagine del generatore predefinita. Devi specificare il tag per la versione del builder che supporta l'immagine di base. Ad esempio, il tag immagine base :v1 non è supportato dal tag del generatore :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 l'immagine del generatore personalizzato dal file builder.Dockerfile:

    docker build -t BUILDER_IMAGE_NAME -f builder.Dockerfile .
    

    Sostituisci BUILDER_IMAGE_NAME con il nome scelto per l'immagine del generatore personalizzato.

  3. Esegui il pack build comando con l'immagine del generatore personalizzato per creare la nuova immagine del container della tua applicazione o funzione:

    pack build SERVICE_IMAGE_NAME --builder BUILDER_IMAGE_NAME
    

    Sostituisci:

    • SERVICE_IMAGE_NAME con il nome che hai scelto per l'immagine dell'applicazione o della funzione.
    • BUILDER_IMAGE_NAME con il nome dell'immagine del generatore personalizzato.

Estensione dell'immagine di esecuzione

Per personalizzare l'immagine del container di esecuzione predefinita:

  1. Crea un run.Dockerfile personalizzato dall'immagine di esecuzione predefinita. Devi specificare il tag per la versione del builder che supporta l'immagine di esecuzione. Ad esempio, il tag immagine di esecuzione :v1 non è supportato dal tag del generatore :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 33:33
    
  2. Crea l'immagine della corsa 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 della campagna personalizzata.

  3. Esegui il pack build comando con l'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 che scegli per l'immagine della funzione o dell'applicazione.
    • RUN_IMAGE_NAME con il nome dell'immagine di esecuzione personalizzata.