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

标签 php windows symfony batch-file docker

我在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/

相关文章:

mysql - 无法连接到现有 MySQL 数据库

c++ - 比 boost::file_mapping 更快的读取文件的方法?

c++ - 在 Qt 中释放和恢复嵌入窗口

Symfony2s Doctrine :generate:entities doesn't generate repo classes

symfony - PHP fatal error : Class 'Application\Sonata\MediaBundle\ApplicationSonataMediaBundle' not found in/var/www/znata. com/app/AppKernel.php 第 47 行

php - 单击每个输入字段时将发送邮件

php - 文件名编码问题

php - 导出订单详细信息 magento

php - symfony2 应用程序,流浪者和 Ant : stty: standard input: Invalid argument

php - 如何在codeigniter中应用所有 Controller 中的所有 session ?