【发布时间】:2022-01-20 02:58:12
【问题描述】:
使用this zip file,此节点脚本成功输出文件:
const child_process = require('child_process')
const util = require('util')
const exec = util.promisify(child_process.exec)
exec(`unzip -Z1 metamorpR.zip`).then(zip_contents => {
if (zip_contents.stderr) {
throw new Error(`unzip error: ${zip_contents.stderr}`)
}
console.log(zip_contents.stdout)
})
metamorpR.z5
Варианты Прохождения.txt
Интерактивная Литература.pdf
但是当我从 Docker 中运行脚本时,它没有。
使用这个 Dockerfile:
FROM node:16-alpine
RUN apk add --no-cache unzip
COPY . .
ENTRYPOINT ["node", "unzip.js"]
构建并运行(替换为您的容器映像名称):
docker build .
docker run --rm 1dc072
输出:
metamorpR.z5
??????? ????????.txt
???????????? ??????????.pdf
我认为这意味着在 Docker 映像中没有正确设置语言环境?任何想法如何解决这个问题?
【问题讨论】:
-
这是related to missing
locales。您可以在构建期间apply this patch 生成语言环境,但即便如此,alpine 上的unzip似乎也不尊重语言环境。这个so post 是相关的。
标签: node.js docker character-encoding locale alpine