我在Windows计算机上的Docker上开发了一个PHP Symfony应用程序。为了进行Doctrine迁移,我想建立一种简单的方法来在PHP容器中运行这些命令。在工作中,我们有一个解决方案,但它在Linux上。解决方案是这个名为“console”的shell脚本:
#!/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”,从而有效地在PHP容器内调用bin/console doctrine:migrations:status
。我现在想要实现的是上面在Windows计算机上进行的描述。我试图这样写console.bat,它只是停止在PHP容器中:
docker exec -ti freeenergy_php_1 /bin/bash
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 The filename, directory name, or volume label syntax is incorrect.
最佳答案
我在工作的docker exec文档中找到了-c参数。现在,console.bat文件如下所示:
docker exec -ti freeenergy_php_1 /bin/bash -c "bin/console %*"
关于php - 在新命令提示符下执行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48481227/