node"/>
部署到 node
大家!也许有人可以帮助我解决 docker 容器中 NodeJS 应用程序的问题。 简单来说,我有一个带有 puppeteer 和 chrome 的网络抓取工具,它从网站(俄语)获取所需信息并将其显示给用户。 它在我的 Linux (Fedora) 系统和 Windows 系统中工作得很好,但是当我尝试将它部署到 node-latest 或 node-alpine 图像而不是俄语字母时,我得到了这个符号: Íîâîñòè 或 Èáó÷àþùåå âèäåî 或 Ýëåêòðíííàÿ ìóçûêà
这是我的 Dockefile:
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 .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
如您所见,我尝试安装西里尔字体和系统 LANG LANGUAGE 和 LC_ALL 变量,但所有尝试都失败了,我仍然得到这些符号。
回答如下:好吧,不确定实际问题是什么,但我已经设法用 node:latest 和 chromium 解决了我的问题,如下所示:
FROM node:latest
RUN apt-get update -y && apt-get upgrade -y
RUN apt-get -y install chromium
ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium
WORKDIR /app
COPY . /app
RUN cd /app
RUN yarn install --prod
RUN yarn add source-map-support
RUN yarn global add @nestjs/cli
CMD yarn run build && yarn run start
更多推荐
部署到 node
发布评论