build ionic in a Dockerfile

Is ionic a bit a bitch when it comes to dependencies and the building process? Yes. But it has to be, as so many things depend on the environment. The following Dockerfile works for me (as opposed to many others), including using official node or alpine images.

FROM debian:jessie-slim

RUN apt-get update && apt-get install curl sudo -y
RUN curl -sL | sudo -E bash -
RUN sudo apt-get install -y nodejs
RUN npm install -g cordova
RUN npm install -g ionic

ADD src /build/src
ADD package.json /build/package.json
ADD typings /build/typings
ADD resources /build/resources

ADD config.xml /build/config.xml
ADD ionic.config.json /build/ionic.config.json
ADD tsconfig.json /build/tsconfig.json
ADD tslint.json /build/tslint.json

RUN cordova telemetry on
RUN cd /build && npm install
RUN mkdir /build/www
RUN cd /build && ionic state restore
RUN cd /build && ionic build browser --prod
ENTRYPOINT /bin/bash