Configura la build ed esegui le immagini

Buildpacks utilizza un valore predefinito builder, che consiste in tutti i componenti necessari per eseguire una build che includa sia un'immagine build che run:

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

Entrambe le immagini possono essere personalizzate ed estese per soddisfare le tue esigenze. Ad esempio, puoi personalizzare le immagini per aggiungere i pacchetti necessari per creare il tuo o installare pacchetti di sistema in modo che siano disponibili quando dell'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 workstation. Docker viene utilizzato da pack come generatore di immagini OCI.
  2. Installa l'interfaccia a riga di comando Pack.
  3. Installa il controllo del codice sorgente Git per recuperare l'applicazione di esempio da GitHub.

Personalizza la build ed esegui le immagini

I buildpack usano un'immagine del builder per costruire il tuo servizio in nell'immagine container. Al termine del processo di compilazione, l'applicazione viene inserita in un'immagine di esecuzione. Scopri di più sul processo di compilazione alla pagina Buildpacks Concepts.

Estensione dell'immagine del builder

Per personalizzare l'immagine del builder predefinita:

  1. Crea un elemento builder.Dockerfile personalizzato dall'immagine del builder predefinita. Tu devi specificare il tag del builder che supporti la tua base dell'immagine. Ad esempio, il tag immagine di 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 la tua immagine del generatore personalizzato dal file builder.Dockerfile:

    docker build -t BUILDER_IMAGE_NAME -f builder.Dockerfile .
    

    Sostituisci BUILDER_IMAGE_NAME con il nome che hai scelto per la tua personalizzata Builder.

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

    pack build SERVICE_IMAGE_NAME --builder BUILDER_IMAGE_NAME
    

    Sostituisci:

    • SERVICE_IMAGE_NAME con il nome che hai scelto per la tua applicazione o immagine della funzione.
    • BUILDER_IMAGE_NAME con il nome della tua personalizzata Builder.

Estensione dell'immagine di esecuzione

Per personalizzare l'immagine container di esecuzione predefinita:

  1. Crea un elemento run.Dockerfile personalizzato dall'immagine di esecuzione predefinita. Tu devi specificare il tag del builder che supporta la tua esecuzione dell'immagine. Ad esempio, il tag immagine dell'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 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 hai scelto per la tua corsa personalizzata dell'immagine.

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

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

    Sostituisci:

    • SERVICE_IMAGE_NAME con il nome che hai scelto per la tua applicazione oppure dell'immagine della funzione.
    • RUN_IMAGE_NAME con il nome dell'immagine di esecuzione personalizzata.