node.js - Laradock - 添加自定义 npm 包
问题描述
这是一种不正常的事情,但这是一种暂时的解决方案。我在系统和 laravel 应用程序中安装了 laradock。
我从 laradock 使用的所有内容都为我提供了以下命令
docker-compose up -d nginx mysql php-worker workspace redis
我需要在我的 docker 中添加全局安装的节点包(https://www.npmjs.com/package/tiktok-scraper),所以我可以通过执行下面的 php 代码来获得结果
exec('tiktok-scraper user username-n 3 -t json');
这需要可用于 php-fpm 和 php-worker 级别,因为我在作业和端点中需要它,这应该调用刮。
我知道,我做错了,但我尝试将它安装在工作区中,例如使用
docker-compose exec workspace bash
npm i -g tiktok-scraper
在此之后,它在我的工作区中可用(例如我可以运行tiktok-scraper --help
),它将向我显示不同的选项。
但这并不能解决问题,因为我exec('tiktok-scraper user username-n 3 -t json');
在我的 laravel 应用程序中一无所获。
我对docker不太熟悉,也不确定,我应该在哪个dockerfile中放一些类似的东西
RUN npm i -g tiktok-scraper
任何帮助将不胜感激谢谢
解决方案
要从 php-worker 内部执行 npm 包,您需要将其安装在 php-worker 容器中。但是要让 php exec() 对您的工作区产生影响,这个工作区需要与您的 php-worker 位于同一个容器中。
推荐阅读
- virtual-machine - 虚拟机不就是一种进程吗?
- delphi - 如何将 MOVE 用于具有记录作为元素和动态数组字段的动态数组?
- flutter - 如何使用颤动中的底部选项卡导航将数据传输到另一个选项卡
- excel - 设置列表框宽度等于列宽的任何更好的方法
- excel - 根据另一列中的真假组合构建一系列数字字符串
- google-chrome - 在多个文本框中粘贴数据
- d3.js - 在 D3.js 中强制气泡向左
- python-3.x - 需要帮助在 Python 中创建类层次结构
- c# - 将文本文件从一个目录移动到另一个目录
- javascript - 如何让 Node.js 为我的 HTML 引用 CSS