我在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文件名,目录名或卷 标签语法不正确。
答案 0 :(得分:1)
我在docker exec的文档中找到了这个-c参数。 console.bat文件现在看起来像这样:
docker exec -ti freeenergy_php_1 /bin/bash -c "bin/console %*"