You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js(Nest)部署到node-alpine容器后西里尔字符显示乱码

Docker容器中Node.js(Puppeteer/Chrome)西里尔字符乱码问题

我开发了一个基于Puppeteer和Chrome的网页爬虫,用于抓取俄文网站信息并展示给用户。该应用在Fedora Linux和Windows系统中运行正常,但部署到node-latest或node-alpine镜像后,俄文字符显示为乱码(如Íîâîñòè、Îáó÷àþùåå âèäåî、Ýëåêòðîííàÿ ìóçûêà)。我已尝试安装西里尔字体并设置系统LANG、LANGUAGE、LC_ALL变量为ru_RU.UTF-8,但问题仍未解决。

以下是我的Dockerfile内容:

FROM node:20-alpine

ENV MUSL_LOCALE_DEPS cmake make musl-dev gcc gettext-dev libintl
ENV MUSL_LOCPATH /usr/share/i18n/locales/musl

RUN apk add font-vollkorn font-misc-cyrillic font-mutt-misc font-screen-cyrillic font-winitzki-cyrillic font-cronyx-cyrillic

RUN apk add --no-cache \
    $MUSL_LOCALE_DEPS \
    && wget https://gitlab.com/rilian-la-te/musl-locales/-/archive/master/musl-locales-master.zip \
    && unzip musl-locales-master.zip \
      && cd musl-locales-master \
      && cmake -DLOCALE_PROFILE=OFF -D CMAKE_INSTALL_PREFIX:PATH=/usr . && make && make install \
      && cd .. && rm -r musl-locales-master

ENV LANG ru_RU.UTF-8
ENV LANGUAGE ru_RU.UTF-8
ENV LC_ALL ru_RU.UTF-8

RUN apk add --no-cache \
      chromium \
      nss \
      freetype \
      harfbuzz \
      ca-certificates \
      ttf-freefont 

ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser

WORKDIR /app
COPY . /app
RUN cd /app
RUN npm i
RUN npm i -g @nestjs/cli
CMD npm run start

内容的提问来源于stack exchange,提问作者Igor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 19:22:50