在新命令提示符下执行命令

时间:2018-01-27 22:31:53

标签: php windows symfony batch-file docker

我在Windows机器上的Docker上开发了一个PHP Symfony应用程序。为了进行Doctrine迁移,我想设置一种在PHP容器中运行这些命令的简单方法。在工作中,我们有一个解决方案,但它在Linux上。解决方案是这个shell脚本,名为“console”:

#!/usr/bin/env bash
docker exec it $(docker-compose ps -q php | head -1) bin/console "$@"

现在你可以做console doctrine:migrations:diff并且会发生什么:打开PHP容器的shell并在bin / console之后插入参数“doctrine:migrations:diff”,从而有效地调用{{1}在PHP容器内。

我现在想要实现的是上面在Windows机器上描述的内容。我试着写这样的console.bat,它只是暂停在PHP容器中:

bin/console doctrine:migrations:status

我也试过这个:

docker exec -ti freeenergy_php_1 /bin/bash
doctrine:migrations:status

这失败了:

  

docker exec -ti freeenergy_php_1 / bin / bash   0< doctrine:migrations:status文件名,目录名或卷   标签语法不正确。

1 个答案:

答案 0 :(得分:1)

我在docker exec的文档中找到了这个-c参数。 console.bat文件现在看起来像这样:

docker exec -ti freeenergy_php_1 /bin/bash -c "bin/console %*"