gpt4 book ai didi

node.js - puppeteer - centos7 - 找不到符号

转载 作者:搜寻专家 更新时间:2023-10-31 23:49:53 28 4
gpt4 key购买 nike

您好,我有一个 super 简单的 Dockerfile 可以在 Docker 中运行 puppeteer:

FROM node:12.2.0-alpine

RUN apk update && apk upgrade && \
echo @edge http://nl.alpinelinux.org/alpine/edge/community >> /etc/apk/repositories && \
echo @edge http://nl.alpinelinux.org/alpine/edge/main >> /etc/apk/repositories && \
apk add --no-cache \
bash=4.4.19-r1 \
git=2.20.1-r0 \
openssh=7.9_p1-r5 \
chromium@edge \
nss@edge \
freetype@edge \
harfbuzz@edge \
ttf-freefont@edge \
sudo=1.8.25_p1-r2

ADD https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64 /usr/local/bin/dumb-init
RUN chmod +x /usr/local/bin/dumb-init
ENTRYPOINT ["dumb-init", "--"]

ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD true

WORKDIR /app

COPY package.json .

RUN npm install --quiet -g pm2@^3.5.1 && \
npm install puppeteer@1.19.0 && \
npm install --quiet

COPY app.js ./app.js

RUN addgroup -S pptruser && adduser -S -g pptruser pptruser \
&& mkdir -p /home/pptruser/Downloads \
&& chown -R pptruser:pptruser /home/pptruser \
&& chown -R pptruser:pptruser /app

USER pptruser

EXPOSE 1337

CMD [ "pm2-runtime", \
"start", "app.js", \
"-i", "max", \
"--max-memory-restart", "1700M", \
"--cron", "0 */12 * * *" \
]

直到我在我的 centos7 主机上运行 yum update 之前,这是一个可行的解决方案。紧接着,该应用程序拒绝正常运行并生成以下错误:

Error: LAUNCH_BROWSER
at /app/node_modules/async/dist/async.js:171:65
at processTicksAndRejections (internal/process/task_queues.js:89:5)
Error: Failed to launch chrome!
Error relocating /usr/lib/chromium/chrome: _ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev: symbol not found
Error relocating /usr/lib/chromium/chrome: _ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev: symbol not found
Error relocating /usr/lib/chromium/chrome: _ZNSt19_Sp_make_shared_tag5_S_eqERKSt9type_info: symbol not found

到目前为止,我未能找到解决方案来将其恢复原状 :-( 任何建议均表示赞赏。

最佳答案

目前 alpine 上最新的 Chromium 版本存在问题。有关详细信息,请参阅 github 上的这两个问题:

解决方案

目前的解决方案是将 Chromium 版本降级到版本 72。一些用户还报告说版本 73 对他们有效。您也可以尝试一下 (chromium@edge=73.0.3683.103-r0)。

除了降级Chromium,还需要将puppeteer降级到对应的版本。对于 Chromium 72,您需要使用版本 1.11.0。 (有关 how to detect the Chrome version to use with puppeteer 的更多信息)

更改后的 Dockerfile:

RUN apk update && apk upgrade && \
...
chromium@edge=72.0.3626.121-r0 \
...

RUN ...
npm install puppeteer@1.11.0 && \

关于node.js - puppeteer - centos7 - 找不到符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58146156/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com