Tôi đã tạo ứng dụng Angular2 mới bằng angular-cli và chạy nó trong Docker.Cách thu nhỏ kích thước hình ảnh Docker với NodeJs
Lúc đầu, tôi init ứng dụng trên máy tính địa phương của tôi:
ng new project && cd project && "put my Dockerfile there" && docker build -t my-ui && docker run.
My 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"]
Mọi thứ đều OK, vấn đề là kích thước của hình ảnh: 939MB !!! Tôi đã cố gắng sử dụng FROM: ubuntu: 16.04 và cài đặt NodeJ trên nó (nó hoạt động), nhưng hình ảnh của tôi vẫn có ~ 450 MB. Tôi biết rằng nút: alpine tồn tại, nhưng tôi không thể cài đặt angular-cli trong đó.
Làm cách nào để thu nhỏ kích thước hình ảnh? Có cần thiết để chạy "npm install" và "ng build" trong Dockerfile không? Tôi hy vọng sẽ xây dựng ứng dụng trên localhost và sao chép nó vào hình ảnh. Tôi đã cố gắng để sao chép dist dir và và file package.json vv, nhưng nó không hoạt động (ứng dụng bắt đầu thất bại). Cảm ơn.
nơi sử dụng không gian đến từ đâu? 'du -h' – Sebas
Sử dụng' lịch sử docker 'để hiển thị tất cả các lớp của hình ảnh để tìm nơi không gian được sử dụng. –
nwinkler