chr*_*oes 6 docker google-chrome-headless
我有一个 Docker 容器,我已经将它用于依赖无头 Chrome 的节点应用程序相当长一段时间了。这个容器一直工作到现在,没有做任何改变。
容器构建得很好,但是 chromium 在容器内启动时出现错误:
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: _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_mRKS3_: symbol not found
Error relocating /usr/lib/chromium/chrome: _ZNSt19_Sp_make_shared_tag5_S_eqERKSt9type_info: symbol not found
Run Code Online (Sandbox Code Playgroud)
这是我的 Dockerfile:
FROM keymetrics/pm2:latest-alpine
# Install git
RUN apk --no-cache upgrade
RUN apk --no-cache add git
# Install chromium
RUN apk -U --no-cache \
--allow-untrusted add \
zlib-dev \
chromium \
xvfb \
wait4ports \
xorg-server \
dbus \
ttf-freefont \
grep \
udev \
&& apk del --purge --force linux-headers binutils-gold gnupg zlib-dev libc-utils \
&& rm -rf /var/lib/apt/lists/* \
/var/cache/apk/* \
/usr/share/man \
/tmp/* \
/usr/lib/node_modules/npm/man \
/usr/lib/node_modules/npm/doc \
/usr/lib/node_modules/npm/html \
/usr/lib/node_modules/npm/scripts
ENV CHROME_BIN=/usr/bin/chromium-browser
ENV CHROME_PATH=/usr/lib/chromium/
# Bundle app files
ADD ./dtms-api-service /server/dtms-api-service
ADD ./dtr-omnicache /server/dtr-omnicache
ADD ./dtr-webservice /server/dtr-webservice
ADD ./env.json /env.json
ADD ./env-dev.json /env-dev.json
ADD ./ecosystem.config.js /ecosystem.config.js
# Install app dependencies
ENV NPM_CONFIG_LOGLEVEL warn
RUN cd /server/dtms-api-service && npm install
RUN cd /server/dtr-omnicache && npm install
RUN cd /server/dtr-webservice && npm install
EXPOSE 3001
ENV PM2_PUBLIC_KEY <secret>
ENV PM2_SECRET_KEY <secret>
CMD ["sh", "-c", "chromium-browser --headless --disable-gpu --no-sandbox --disable-software-rasterizer --remote-debugging-port=9222 & pm2-runtime start ecosystem.config.js --env production"]
Run Code Online (Sandbox Code Playgroud)
我也尝试过使用它来安装 chrome,但它产生了相同的结果:
# Install chromium
RUN 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 \
chromium@edge \
nss@edge
Run Code Online (Sandbox Code Playgroud)
也:
# Install chromium
RUN 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 \
chromium@edge \
harfbuzz@edge \
nss@edge \
freetype@edge \
ttf-freefont@edge \
&& rm -rf /var/cache/* \
&& mkdir /var/cache/apk
Run Code Online (Sandbox Code Playgroud)
编辑:事实证明,Chromium 于 9 月 25 日在 APK 存储库上进行了更新,这与它停止工作的时间一致。所以现在我必须弄清楚如何让它再次工作或切换到旧版本。
我尝试使用以下命令安装以前的版本:
RUN echo @v3.10 http://nl.alpinelinux.org/alpine/v3.10/main >> /etc/apk/repositories \
&& echo @v3.10 http://nl.alpinelinux.org/alpine/v3.10/main >> /etc/apk/repositories \
&& apk add --no-cache \
chromium@v3.10 \
harfbuzz@v3.10 \
nss@v3.10 \
freetype@v3.10 \
ttf-freefont@v3.10 \
&& rm -rf /var/cache/* \
&& mkdir /var/cache/apk
Run Code Online (Sandbox Code Playgroud)
现在,我在运行chromium-browser命令时遇到分段错误。
前几天也碰到了这个。我怀疑chrome的edge版本坏了。从历史上看,我使用它的原因是因为新--headless选项。但稳定版本目前为77.0.3865.75-r0,这足以满足我所需的一切。所以我Dockerfile现在看起来像这样:
...
RUN apk update && apk upgrade && \
apk add --no-cache \
chromium
...
Run Code Online (Sandbox Code Playgroud)
我的用例是构建EmberJS应用程序并在无头模式下针对 Chrome 进行测试。
在此更改之前,Dockerfile不再对我有用的是:
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 \
git \
chromium@edge \
nss@edge \
freetype@edge \
harfbuzz@edge && \
rm -rf /var/lib/apt/lists/* \
/var/cache/apk/* \
/usr/share/man \
/tmp/*
Run Code Online (Sandbox Code Playgroud)
错误是:
Error: Browser exited unexpectedly
Non-zero exit code: 127
Stderr:
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5533 次 |
| 最近记录: |