2017-02-11 36 views
0

具有基礎docker-compose.yml類似如下:泊塢窗撰寫如何與構建擴展服務來使用圖片代替

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

如何延長其使用圖片​​代替?

docker-compose.prod.yml

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

與碼頭工人docker-compose -f docker-compose.yml -f docker-compose.prod.yml up運行仍然promps:

Building web
Step 1/x : FROM ...

我試着用docker-compose -f docker-compose.yml -f docker-compose.prod.yml up --no-build

ERROR: Service 'web' needs to be built, but --no-build was passed.

我期待「,從名字拉/回購消息「。我有哪些選項?還是我需要創建一個完整的重複文件來處理這個微小的修改?

回答

-1

省略基於docker-compose.ymlbuild,並將其置於docker-compose.override.yml文件中。

When you run docker-compose up it reads the overrides automatically.

摘自Docker Compose Documentation

由於您docker-compose.yml文件必須有建立或圖像,我們將使用具有較少的優先級,導致圖像:

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

現在讓我們走上docker-compose.override.yml,將運行一個默認情況下(意思是docker-compose updocker-compose run web command)。

默認情況下,我們希望它從我們Dockerfile打造的形象,所以我們可以簡單地通過使用build: .

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

生產用docker-compose -f docker-compose.yml -f docker-compose.prod.yml up一個docker-compose.prod.yml運行將類似於這一個做到這一點,除此之外,在這種情況下,我們希望它從泊塢窗倉庫取圖像:

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

既然我們已經有相同的image: repo在我們的基地docker-compose.yml文件,我們可以在這裏省略它(但完全是可選的)。