Docker Scrivi come estendere il servizio con la build per utilizzare un'image invece

Avere un base docker-compose.yml come le seguenti:

 version: '2' services: web: build: . ... 

Come posso estenderlo per utilizzare invece un'image?

docker-compose.prod.yml

 version: '2' services: web: image: username/repo:tag 

docker-compose -f docker-compose.yml -f docker-compose.prod.yml up ancora promps:

Costruire web
Passo 1 / x: DA …

Ho provato con docker-compose -f docker-compose.yml -f docker-compose.prod.yml up --no-build :

ERRORE: bisogna build il servizio 'web', ma è stata passata la "no-build".

Mi aspetto il "Trascinamento dal nome / repo messaggio" invece. Quali opzioni posso avere? O devo creare un file duplicato completo per gestire questa leggera modifica?

Omettere la build sulla base docker-compose.yml e collocarla in un file docker-compose.override.yml .

Quando si esegue il compilatore dock-up si legge automaticamente le sostituzioni.

Estratto dalla documentazione Docker Compose .

Dal momento che il tuo file docker-compose.yml deve avere la creazione o l'image, useremo l'image che ha less priorità, con conseguente:

 version: '2' services: web: image: repo [...] 

Ora passiamo su docker-compose.override.yml , quello che verrà eseguito per impostazione predefinita (che significa docker-compose up o docker-compose run web command ).

Per impostazione predefinita, vogliamo build l'image dal nostro Dockerfile , per cui possiamo farlo semplicemente utilizzando la build: .

 version: '2' services: web: build: . 

La produzione di un docker-compose.prod.yml eseguita usando docker-compose -f docker-compose.yml -f docker-compose.prod.yml up sarà simile a questo, salvo che in questo caso vogliamo che prenda l'image del repository Docker:

 version: '2' services: web: image: repo 

Dato che abbiamo già la stessa image: repo sul nostro file base docker-compose.yml possiamo ignorarlo qui (ma è completamente opzionale).