关于 Dockerfile 使用了 alpine 镜像打包后的镜像依然很大的疑问

106 天前
 PqgpNgA0wk

目前在打包一个 nuxt3 项目,Dockerfile 内容如下

FROM node:20-alpine AS build

WORKDIR /app

COPY . .

RUN npm install && npm run build

FROM node:20-alpine AS release

WORKDIR /dist

COPY --from=build /app/.output/* .

EXPOSE 3000

CMD node server/index.mjs

生成的镜像有 147MB ,按照我搜到的教程,我的理解应该只有 70 多兆才对

然后我用 docker history 查看了构建层

高亮这条就已经有 121MB 了,可我在 dockerhub 上看的 node:20-alpine 镜像的同一层只有 42.17MB

不解为什么本地打包时候这一层会变大🤔

963 次点击
所在节点    Docker
4 条回复
ss098
106 天前
Docker Hub 上显示的是压缩后的 layer 大小
PqgpNgA0wk
106 天前
@ss098 了解了解
julyclyde
106 天前
你高亮的那一行,没在你自己的 Dockerfile 里啊
这是 node:20-alpine 的内容吧?

这样的话,你应该拿最终结果和 FROM 做比较,看增加了多少;而不是直接看最终大小吧?
只要没有过份增加,那你做的就没啥错;至于为什么底层那么大,那也不是你能管得了的事了吧
PqgpNgA0wk
106 天前
@julyclyde 好的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1011030

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX