2016-08-18 132 views
1

我有一個Makefile文件,看起來像這樣:運行搬運工集成測試容器而開發的容器運行

dev: 
    docker-compose up -d --build 

test: 
    DOCKER_ENV="-test" docker-compose up -d --build 
    // run some integration tests on the containers then 
    // shut them down (and let ephemeral database disappear) 
    DOCKER_ENV="-test" docker-compose down -v 

我的搬運工,撰寫看起來是這樣的:

services: 
    foo: 
    container_name: foo${DOCKER_ENV} 
    image: foo:latest 
    bar: 
    container_name: bar${DOCKER_ENV} 
    image: bar:latest 

當我嘗試運行make dev然後make test後者導致用新名稱(「-test」)重建dev容器,而不是創建一整套單獨的容器 - 這正是我想要的。

如何讓開發環境保持運行並定期啓動測試環境? (我們將在某個時候做這個CI,但我希望開發人員能夠在本地運行所有測試。)

回答

2

從測試使用泊塢窗,撰寫項目名稱設置爲獨立的開發,如:

dev: 
    docker-compose up -d --build 

test: 
    export DOCKER_PROJ=`basename \`pwd\``"-test" 
    docker-compose -p ${DOCKER_PROJ} up -d --build 
    // run some integration tests on the containers then 
    // shut them down (and let ephemeral database disappear) 
    docker-compose -p ${DOCKER_PROJ} down -v 

(我的Makefile的語法是有點生疏,我敢肯定,有簡潔的方式來做到這一點。)

+2

您也可以設置,而不是使用'-p'了'COMPOSE_PROJECT_NAME'環境變量。 – dnephin