2015-12-16 24 views

risposta

48

Ora docker-compose supporta la sostituzione di variabile.

Compose utilizza i valori delle variabili dall'ambiente shell in cui viene eseguito docker-compose. Ad esempio, supponiamo che il guscio contiene POSTGRES_VERSION=9.3 e fornirvi questa configurazione nel proprio docker-compose.yml del file:.

db: 
    image: "postgres:${POSTGRES_VERSION}" 

Quando si esegue docker-compose up con questa configurazione, Compose cerca la variabile POSTGRES_VERSION ambiente nella shell e sostituisce il suo valore in per In questo esempio, Compose risolve lo image in postgres:9.3 prima di eseguire la configurazione.

+3

Gli argomenti di compilazione sono una funzione di Docker 1.9, la domanda ha chiesto come ottenere Docker Compose per utilizzarli. La sostituzione variabile non è correlata. – Jack

+5

@Jack So che questa non è una risposta diretta alla domanda, ma potrebbe essere una soluzione alternativa dato che la 'docker-compose' non supporta gli argomenti di passaggio. –

+7

@Jack Sono venuto qui cercando la sostituzione variabile, quindi questo mi è stato utile – Andy

59

Ora questo può essere eseguito come docker-compose v2 + come parte dell'oggetto build;

finestra mobile-compose.yml

version: '2' 
services: 
    my_image_name: 
     build: 
      context: . #current dir as build context 
      args: 
       var1: 1 
       var2: c 

Vedi the docker compose docs.

Nell'esempio precedente "var1" e "var2" verranno inviati all'ambiente di generazione.

Nota: qualsiasi variabile di env (specificata utilizzando il blocco environment) che ha lo stesso nome di variabile args sostituirà quella variabile.

+0

Grazie per la parte 'context', manca nei documenti. –

+0

@tfg Sai se le chiavi 'args' devono essere minuscole? I documenti e tutti gli esempi che ho visto usano le chiavi minuscole, ma non ho visto alcuna menzione di ciò che è _questito_. – pdoherty926

+0

@ pdoherty926 Questa dovrebbe essere solo l'espansione delle variabili bash, quindi le maiuscole e le minuscole con caratteri di sottolineatura dovrebbero andare bene. – tgallacher

Problemi correlati