symfony - 通过 ansible composer 模块运行 composer dump-env prod
问题描述
我无法使用 ansible composer 模块运行symfony flex命令。composer dump-env prod
我想知道它是否可能?我的任务看起来像这样:
- name: Composer dump env for production
composer:
command: dump-env
working_dir: "{{ app_composer_package_dir }}"
arguments: prod
become_user: "{{app_apache_user}}"
become: yes
我得到的错误是:
"stderr": "\n
\n [Symfony\Component\Console\Exception\CommandNotFoundException] \n 没有定义命令 \"dump-env\"。
\n
ansible详细日志:
fatal: [testhost.com]: FAILED! => {
"changed": false,
"invocation": {
"module_args": {
"apcu_autoloader": false,
"arguments": "prod",
"classmap_authoritative": false,
"command": "dump-env",
"executable": null,
"global_command": false,
"ignore_platform_reqs": false,
"no_dev": true,
"no_plugins": false,
"no_scripts": false,
"optimize_autoloader": true,
"prefer_dist": false,
"prefer_source": false,
"working_dir": "/var/www/source"
}
},
"msg": "[Symfony\\Component\\Console\\Exception\\CommandNotFoundException] Command \"dump-env\" is not defined. help [--xml] [--format FORMAT] [--raw] [--] [<command_name>]"
}
",
我尝试使用 ansiblecommand
模块直接运行命令,但我得到了同样的错误。
但是,我可以通过 sshing 到远程(centos)实例来运行命令:
sudo -u apache composer dump-env prod
将“symfony/symfony”中列出的包限制为“4.3.*”
成功将 .env 文件转储到 .env.local.php
解决方案
到目前为止,我无法composer dump-env prod
使用 ansible composer 模块运行命令。但是使用 ansible 命令模块的以下任务成功运行,例如
- name: Composer dump env for production
command: "{{composer_install_path}} --working-dir={{ app_composer_package_dir }} dump-env prod"
become_user: "{{app_apache_user}}"
become: yes
这转化为某事:
sudo -u apache /usr/local/bin/composer --working-dir=/var/www/source dump-env prod
推荐阅读
- javascript - 更新旧的 Web 窗体应用程序以使用 Chrome/window.open 行为。如何在关闭窗口时刷新父级父级?
- clojure - 从 Clojure 的嵌套列表中获取平面记录数据结构
- angular - Angular Firestore 集合查询和排序依据
- loopbackjs - 如何在 loopback-next 中重新发送内容
- c++ - 将 int 与 string 和 getline 一起使用而不会出错
- azure - Azure Cosmos DB - 不正确且可变的文档计数
- ruby - DOM 外的 Selenium 访问元素
- python - 在 houghlinesP 参数中包含空数组
- haskell - 为什么数据构造函数不在此范围内
- java - 有没有办法实现比双精度更好但性能比 BigDecimal 更好的方法?