Я создал новое Angular2 приложение angular -cli и запустил его в 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 МБ. Я знаю, что node: alpine существует, но я не могу установить в него angular -cli.
Как уменьшить размер изображения? Нужно ли запускать "npm install" и "ng build" в Dockerfile? Я ожидал бы создать приложение на локальном хосте и скопировать его в изображение. Я попытался скопировать файлы dist dir и package.json и т.д., Но это не сработает (сбой запуска приложения). Спасибо.