Windows系统下Docker构建出现exit code 100错误的解决求助
问题原因
你的问题和Windows系统无关,核心是node:8基础镜像基于的Debian Stretch版本已停止官方支持,原有的apt源地址已失效,导致执行apt-get update时返回404错误。
解决方案
方案1:适配现有node:8(替换归档源)
修改Dockerfile,先将apt源替换为Debian归档服务器,再合并安装命令减少镜像层数:
FROM node:8 # 替换为Debian Stretch归档源 RUN echo "deb http://archive.debian.org/debian stretch main contrib non-free" > /etc/apt/sources.list && \ echo "deb http://archive.debian.org/debian-security stretch/updates main contrib non-free" >> /etc/apt/sources.list && \ # 批量安装所有依赖 apt-get update && apt-get -q -y install \ libleptonica-dev \ libtesseract3 \ libtesseract-dev \ tesseract-ocr \ tesseract-ocr-hin tesseract-ocr-ara tesseract-ocr-fra tesseract-ocr-fin tesseract-ocr-jpn tesseract-ocr-pol tesseract-ocr-spa tesseract-ocr-rus tesseract-ocr-ita tesseract-ocr-por tesseract-ocr-kor tesseract-ocr-ces tesseract-ocr-dan tesseract-ocr-deu tesseract-ocr-nld tesseract-ocr-swe tesseract-ocr-tur \ git \ gcc && \ # 清理缓存减小镜像体积 apt-get clean && rm -rf /var/lib/apt/lists/* COPY app.js . COPY package.json . COPY .env . RUN npm install EXPOSE 3000 CMD node app.js
方案2:升级Node.js版本(推荐)
node:8是已停止维护的老旧版本,建议升级到受支持的版本(如node:16,基于Debian Bullseye,源正常维护),同时注意依赖包版本变化:
FROM node:16 RUN apt-get update && apt-get -q -y install \ libleptonica-dev \ libtesseract5 \ libtesseract-dev \ tesseract-ocr \ tesseract-ocr-hin tesseract-ocr-ara tesseract-ocr-fra tesseract-ocr-fin tesseract-ocr-jpn tesseract-ocr-pol tesseract-ocr-spa tesseract-ocr-rus tesseract-ocr-ita tesseract-ocr-por tesseract-ocr-kor tesseract-ocr-ces tesseract-ocr-dan tesseract-ocr-deu tesseract-ocr-nld tesseract-ocr-swe tesseract-ocr-tur \ git \ gcc && \ apt-get clean && rm -rf /var/lib/apt/lists/* COPY app.js . COPY package.json . COPY .env . RUN npm install EXPOSE 3000 CMD node app.js
内容的提问来源于stack exchange,提问作者Bùi Minh Đức
相关产品推荐
相关产品推荐

