如何docker-compose在Windows中运行?

如何在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`. 

可能吗 ?
你有没有例子?

问题2836跟踪docker-compose在Windows上的交互模式支持,提出了一些替代方案:

  • 从容器内使用bash:

     docker exec -it MY_CONTAINER bash 
  • Rodrigo男爵使用docker-compose-run脚本 :

脚本(把函数放在~/.zshrc~/.bashrc中,例如在一个Windows git bash shell中):

 #!/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 "$@" 

用法:

用法:

 docker-compose-run web rspec # or: docker-compose-run -f docker-compose.development.yml web rspec 

更简单的选择是使用选项-d和获取日志

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

被替换为:

 docker-compose-run <service> <command> 

为了这个工作,将这个片段添加到~/.bashrc

 docker-compose-run() { CONTAINER_NAME=$(docker-compose run -d $@) docker logs -f $CONTAINER_NAME docker rm $CONTAINER_NAME }