gpt4 book ai didi

node.js - 如何使用 NodeJs 缩小 Docker 镜像的大小

转载 作者:IT老高 更新时间:2023-10-28 12:46:50 35 4
gpt4 key购买 nike

我通过 angular-cli 创建了新的 Angular2 应用并在 Docker 中运行。

首先我在本地机器上初始化应用程序:

ng new project && cd project &&  "put my Dockerfile there" && docker build -t my-ui && docker run.

我的 Dockerfile

FROM node

RUN npm install -g angular-cli@v1.0.0-beta.24 && npm cache clean && rm -rf ~/.npm

RUN mkdir -p /opt/client-ui/src
WORKDIR /opt/client-ui

COPY package.json /opt/client-ui/
COPY angular-cli.json /opt/client-ui/
COPY tslint.json /opt/client-ui/

ADD src/ /opt/client-ui/src

RUN npm install
RUN ng build --prod --aot

EXPOSE 4200

ENV PATH="$PATH:/usr/local/bin/"
CMD ["npm", "start"]

一切正常,问题是图片大小:939MB!!!我尝试使用 FROM: ubuntu:16.04 并在其上安装 NodeJs(它有效),但我的图像仍然有 ~ 450 MB。我知道 node:alpine 存在,但我无法在其中安装 angular-cli。

如何缩小图片尺寸?是否需要在 Dockerfile 中运行“npm install”和“ng build”?我希望在 localhost 上构建应用程序并将其复制到图像。我试图复制 dist dir 和 package.json 等文件,但它不起作用(应用程序启动失败)。谢谢。

最佳答案

You can certainly use my alpine-ng image if you like.

You can also check out the dockerfile, if you want to try and modify it in some way.

很遗憾地通知您,即使基于 alpine,它仍然是 610MB。可以肯定的是,这是一个改进,但 Angular 编译器非常庞大这一事实无法回避。

关于node.js - 如何使用 NodeJs 缩小 Docker 镜像的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41486048/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com