Stworzyłem nową aplikację Angular2 przez angle-cli i uruchomiłem ją w Dockerze.Jak zmniejszyć rozmiar obrazu Docker za pomocą NodeJs
Na początku procesu init aplikację na moim komputerze lokalnym:
ng new project && cd project && "put my Dockerfile there" && docker build -t my-ui && docker run.
moich 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"]
Wszystko jest OK, problemem jest wielkość obrazu: 939MB !!! Próbowałem użyć FROM: ubuntu: 16.04 i zainstalować na nim NodeJs (działa), ale wciąż mój obraz ma ~ 450 MB. Znam ten węzeł: alpine istnieje, ale nie jestem w stanie zainstalować w nim kanciastego-cli.
Jak zmniejszyć rozmiar obrazu? Czy konieczne jest uruchomienie "npm install" i "ng build" w Dockerfile? Spodziewałbym się zbudować aplikację na localhost i skopiować ją do obrazu. Próbowałem skopiować pliki dist dir i package.json etc, ale to nie działa (błąd startu aplikacji). Dzięki.
skąd pochodzi wykorzystanie przestrzeni? 'du -h' – Sebas
Użyj' historii dokowanej ', aby wyświetlić wszystkie warstwy obrazu, aby znaleźć miejsce do wykorzystania. –
nwinkler