2016-05-23 3 views
4

Как использовать эту команду в Windows 10 ЖИЛЫХ:Как выполнить докер-прогон в окнах?

docker-compose run api composer install --no-interaction 

Пример:

docker-compose run api composer install --no-interaction 
- Interactive mode is not yet supported on Windows. 
Please pass the -d flag when using `docker-compose run`. 

возможно ли это?
У вас есть пример?

ответ

3

интерактивный режим поддержки для докер-компоновать на Windows, отслеживается issue 2836, которая предлагает несколько вариантов:

Script (поставить функцию в ~/.zshrc или ~/.bashrc в Windows, мерзавец Баш оболочки, например):

#!/bin/bash 

function docker-compose-run() { 
     if [ "$1" = "-f" ] || [ "$1" = "--file" ] ; then 
       docker exec -i $(docker-compose -f $2 ps $3 |grep -m 1 $3 | cut -d ' ' -f1) "${@:4}" 
     else 
       docker exec -i $(docker-compose ps $1 | grep -m 1 $1 | cut -d ' ' -f1) "${@:2}" 
     fi 
} 

docker-compose-run "[email protected]" 

Использование:

использование:

docker-compose-run web rspec 

# or: 

docker-compose-run -f docker-compose.development.yml web rspec 
+0

Спасибо. Я могу сделать docker-compose run -d api bin/console d: s: u --force, например, он работает! но как выполнить: docker-compose запустить -d vendor/bin/phpunit с результатом? – user3231191

+0

@ user3231191 Просто чтобы вы знали, у меня нет немедленного ответа. – VonC

0

Simpler альтернативой является использование опции -d и для получения журналов

docker-compose run -rm <service> <command> 

заменяется:

docker-compose-run <service> <command> 

для этой работы, добавьте этот фрагмент в вашем ~/.bashrc:

docker-compose-run() { 
    CONTAINER_NAME=$(docker-compose run -d [email protected]) 
    docker logs -f $CONTAINER_NAME 
    docker rm $CONTAINER_NAME 
}