【发布时间】:2021-06-27 08:39:31
【问题描述】:
我正在尝试在 Docker 容器中运行依赖于 https://github.com/pevers/images-scraper 的脚本。我可以自己运行脚本(在我的具有节点 14.15.4 的机器上,执行node src/index.js 这将产生控制台输出 A),但在 docker 的上下文中它不起作用 - 我收到一条错误消息关于丢失的 Firefox 二进制文件。
Dockerfile:
FROM node:14
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
RUN PUPPETEER_PRODUCT=firefox npm install puppeteer
COPY . .
CMD [ "node", "src/index.js" ]
src/index.js:
let Scraper = require("images-scraper");
const google = new Scraper({
puppeteer: {
userAgent:
"Mozilla/5.0 (X11; Linux i686; rv:64.0) Gecko/20100101 Firefox/64.0",
headless: true,
safe: true,
},
});
(async () => {
const A = await google.scrape("bananas", 200);
console.log(A)
})();
package.json
{
"name": "test",
"version": "1.0.0",
"scripts": {
"test": "node src/index.js"
},
"dependencies": {
"images-scraper": "^6.2.1"
}
}
当我 /bin/bash 进入我的容器并执行 node src/index.js 时,我得到了错误:
at ChromeLauncher.launch (/usr/src/app/node_modules/puppeteer/lib/cjs/puppeteer/node/Launcher.js:79:23)
at async GoogleScraper.scrape (/usr/src/app/node_modules/images-scraper/src/google/scraper.js:53:21)
at async /usr/src/app/src/index.js:19:13
在 Docker 中使用 Node 的新手——我想知道我哪里出错了。谢谢
【问题讨论】: