【问题标题】:How to docker-compose run in windows?如何在 Windows 中运行 docker-compose?
【发布时间】:2016-05-23 08:21:35
【问题描述】:

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

有可能吗?
你有例子吗?

【问题讨论】:

    标签: windows docker docker-compose boot2docker


    【解决方案1】:

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

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

    #!/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
    

    【讨论】:

    • 谢谢。我可以做 docker-compose run -d api bin/console d:s:u --force 例如它的工作!但是如何执行: docker-compose run -d vendor/bin/phpunit 结果?
    • @user3231191 只是想让你知道我没有立即答复。
    【解决方案2】:

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

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

    替换为:

    docker-compose-run <service> <command>
    

    为此,请将此 sn-p 添加到您的 ~/.bashrc 中:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-19
      • 1970-01-01
      • 2019-06-24
      • 2017-07-14
      • 2018-06-12
      • 2020-04-22
      • 1970-01-01
      相关资源
      最近更新 更多