我通過angular-cli創建了新的Angular2應用程序並在Docker中運行它。如何使用NodeJs縮小Docker鏡像的大小
起初我初始化我的本地機器上的應用程序:
ng new project && cd project && "put my Dockerfile there" && docker build -t my-ui && docker run.
我Dockerfile
FROM node
RUN npm install -g [email protected] && 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。我知道節點:高山存在,但我不能在其中安裝angular-cli。
如何縮小圖像大小?是否有必要在Dockerfile中運行「npm install」和「ng build」?我希望在本地主機上構建應用程序並將其複製到圖像。我試圖複製dist dir和package.json等文件,但它不起作用(應用程序啓動失敗)。謝謝。
空間使用來自哪裏? 'du -h' – Sebas
使用'docker history'顯示圖像的所有圖層以找到空間的使用位置。 –
nwinkler