多阶段构建的镜像,第二阶段只安装了 hook-kit 这一个包
build 完,
整个镜像 4.08 G
进入bash看 node_modules,大小是 1.9G
请教两个问题:
- 我电脑安装同样的包,大小只有 560 M,为什么镜像里安装就 1.9G 呢
- 为什么 node_modules 1.9G,整个镜像却 4G 呢?
大佬们,帮帮 Docker 新手吧~~~
有需要的话,我可以把镜像传到 DockerHub 上去
感谢感谢~~~
Dockerfile 如下
多阶段构建的镜像,第二阶段只安装了 hook-kit 这一个包
build 完,
整个镜像 4.08 G
进入bash看 node_modules,大小是 1.9G
请教两个问题:
大佬们,帮帮 Docker 新手吧~~~
有需要的话,我可以把镜像传到 DockerHub 上去
感谢感谢~~~
Dockerfile 如下
我的工作场景中对于部署文件大小要求比较高,下面是我这几年一直以来的做法
试试你的项目能用@vercel/ncc 成功bundle不?
能的话就不需要拷贝node_modules目录了,大大减小了docker镜像大小。另外你也可以考虑使用alpine基础镜像来缩减镜像容量。
我的dockerfile你可以参考:
FROM node:16-alpine as builder
COPY . /usr/src/app/
RUN --mount=type=cache,target=/root/.npm/ \
cd /usr/src/app/ && \
npm ci -dd && \
npm run build
FROM node:16-alpine
COPY --from=0 /usr/src/app/dist/ /usr/src/app/
ENV FASTIFY_PORT=3006
ENV FASTIFY_ADDRESS=0.0.0.0
EXPOSE ${FASTIFY_PORT}
RUN adduser -s /bin/false -S -D -H app
USER app
CMD ["node", "/usr/src/app/index.js"]
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答4.8k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
1 回答3.1k 阅读✓ 已解决
node_modules
,更好的方式应该是先打包,获得dist
部署文件,然后部署到nginx
,这样镜像就非常小了,你现在这样打包至少都会有 2G 以上,吃力不讨好。