【问题标题】:Problem with run node prune in docker file在 docker 文件中运行 node prune 的问题
【发布时间】:2022-10-15 02:34:58
【问题描述】:

我遵循这个reference 来减少我的 docker 图像。这是我的 Dockerfile:

FROM node:10 as builder
RUN curl -sfL https://install.goreleaser.com/github.com/tj/node-prune.sh | bash -s -- -b /usr/local/bin
WORKDIR /app
COPY package.json /app
RUN npm install
COPY . .
RUN npm run build
RUN npm prune --production
RUN /usr/local/bin/node-prune
FROM node:10-alpine
COPY --from=builder /app/node_modules ./node_modules
COPY --from=builder /app/dist /app/
EXPOSE 3000
CMD npm run start:dev

然而,当运行 docker build 我得到了错误。感谢您的关注。

【问题讨论】:

  • 请不要张贴文字图片。只需在您的问题中包含文本,格式为代码示例。
  • 看起来node-prune 没有安装在/usr/local/bin 中。你检查过那个目录吗?例如,您可以在 Dockerfile 中粘贴 RUN ls ...。
  • 既然您只是在运行开发服务器,那么尝试修剪依赖项有什么意义呢?
  • @Phil,我只是想减少image docker的容量,它很重
  • 我无法重现这一点。运行干净的node:10 图像,我可以运行npm init -y && npm prune --production 没有任何问题。我当然不必手动安装node-prune。您是否尝试过删除该步骤?

标签: node.js docker dockerfile


【解决方案1】:

使用以下行:

RUN curl -sf https://gobinaries.com/tj/node-prune | sh

RUN node-prune /usr/src/app/node_modules

【讨论】:

  • 一个好的答案将始终包括解释为什么这会解决问题,以便 OP 和任何未来的读者可以从中学习。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-23
相关资源
最近更新 更多