我有一个简单的javascript文件,它使用Selify启动Chrome,打开一些网站,并从该网站收集一些数据。现在,我想将该文件放入Docker容器中并运行它。
为此,我编写了以下Dockerfile:
FROM alpine
RUN apk add --update nodejs npm chromium
COPY . /src
WORKDIR /src
RUN npm install -g chromedriver
RUN npm install
ENTRYPOINT ["node", "index.js"]
该映像构建时没有错误,但当我尝试从它运行容器时,我得到:
/src/node_modules/selenium-webdriver/remote/index.js:248
reject(Error(e.message))
^
Error: Server terminated early with status 1
at /src/node_modules/selenium-webdriver/remote/index.js:248:24
at processTicksAndRejections (node:internal/process/task_queues:96:5)
我的index.js文件只有一个依赖项-"selenium-webdriver": "^4.1.1"
,文件本身如下所示:
index.js
const {Builder, By} = require('selenium-webdriver');
(async function example() {
let driver = await new Builder().forBrowser('chrome').build();
try {
// Navigate to Url
await driver.get('https://www.example.com');
// Get all the elements available with tag 'p'
let elements = await driver.findElements(By.css('p'));
for(let e of elements) {
console.log(await e.getText());
}
}
finally {
await driver.quit();
}
})();
我做错了什么?如何才能使容器成功运行?
1条答案
按热度按时间xuo3flqw1#
我认为问题出在Selple-WebDriver/Chrome上,因为构建器被我的浏览器卡住了。