【发布时间】:2017-05-20 01:20:53
【问题描述】:
我通过 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 等文件,但它不起作用(应用程序启动失败)。谢谢。
【问题讨论】:
-
空间使用量从何而来?
du -h -
使用
docker history <imagename>显示图像的所有层以查找空间的使用位置。
标签: node.js angular docker dockerfile