diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..04000655 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,4 @@ +node_modules +bower_components +.tmp +.env diff --git a/Dockerfile b/Dockerfile index 6adb2938..089a9e30 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,22 +10,52 @@ FROM ubuntu:latest MAINTAINER MEAN.JS +# 80 = HTTP, 443 = HTTPS, 3000 = MEAN.JS server, 35729 = livereload +EXPOSE 80 443 3000 35729 + +# Set development environment as default +ENV NODE_ENV development + # Install Utilities -RUN apt-get update -q -RUN apt-get install -yqq wget aptitude htop vim git traceroute dnsutils curl ssh sudo tree tcpdump nano psmisc gcc make build-essential libfreetype6 libfontconfig libkrb5-dev +RUN apt-get update -q \ + && apt-get install -yqq curl \ + wget \ + aptitude \ + htop \ + vim \ + git \ + traceroute \ + dnsutils \ + curl \ + ssh \ + tree \ + tcpdump \ + nano \ + psmisc \ + gcc \ + make \ + build-essential \ + libfreetype6 \ + libfontconfig \ + libkrb5-dev \ + ruby \ + sudo \ + apt-utils \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* + +# Install nodejs +RUN curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash - +RUN sudo apt-get install -yq nodejs \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* # Install gem sass for grunt-contrib-sass -RUN apt-get install -y ruby RUN gem install sass -# Install NodeJS -RUN curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash - -RUN sudo apt-get install -yq nodejs - # Install MEAN.JS Prerequisites -RUN npm install --quiet -g grunt-cli gulp bower yo mocha karma-cli pm2 +RUN npm install --quiet -g grunt-cli gulp bower yo mocha karma-cli pm2 && npm cache clean -RUN mkdir /opt/mean.js RUN mkdir -p /opt/mean.js/public/lib WORKDIR /opt/mean.js @@ -35,35 +65,14 @@ WORKDIR /opt/mean.js # when the local package.json file changes. # Install npm packages ADD package.json /opt/mean.js/package.json -RUN npm install --quiet +RUN npm install --quiet && npm cache clean # Install bower packages ADD bower.json /opt/mean.js/bower.json ADD .bowerrc /opt/mean.js/.bowerrc RUN bower install --quiet --allow-root --config.interactive=false -# Share local directory on the docker container ADD . /opt/mean.js -# Machine cleanup -RUN npm cache clean -RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* - -# Set development environment as default -ENV NODE_ENV development - -# Ports generic -EXPOSE 80:80 -EXPOSE 443:443 - -# Port 3000 for MEAN.JS server -EXPOSE 3000:3000 - -# Port 5858 for node debug -EXPOSE 5858:5858 - -# Port 35729 for livereload -EXPOSE 35729:35729 - # Run MEAN.JS server CMD ["npm", "start"] diff --git a/Dockerfile-production b/Dockerfile-production index a207e53d..9f4f53f4 100644 --- a/Dockerfile-production +++ b/Dockerfile-production @@ -10,21 +10,49 @@ FROM ubuntu:latest MAINTAINER MEAN.JS +# 80 = HTTP, 443 = HTTPS, 3000 = MEAN.JS server, 35729 = livereload +EXPOSE 80 443 3000 35729 + # Install Utilities -RUN apt-get update -q && apt-get install -yqq aptitude git traceroute dnsutils tree tcpdump psmisc gcc make build-essential libfreetype6 libfontconfig libkrb5-dev curl sudo +RUN apt-get update -q \ + && apt-get install -yqq curl \ + wget \ + aptitude \ + htop \ + vim \ + git \ + traceroute \ + dnsutils \ + curl \ + ssh \ + tree \ + tcpdump \ + nano \ + psmisc \ + gcc \ + make \ + build-essential \ + libfreetype6 \ + libfontconfig \ + libkrb5-dev \ + ruby \ + sudo \ + apt-utils \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* + +# Install nodejs +RUN curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash - +RUN sudo apt-get install -yq nodejs \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* # Install gem sass for grunt-contrib-sass -RUN apt-get install -y ruby RUN gem install sass -# Install NodeJS -RUN curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash - -RUN sudo apt-get install -yq nodejs - # Install MEAN.JS Prerequisites -RUN npm install --quiet -g grunt-cli gulp bower yo mocha karma-cli pm2 +RUN npm install --quiet -g grunt-cli gulp bower yo mocha karma-cli pm2 && npm cache clean -RUN mkdir /opt/mean.js RUN mkdir -p /opt/mean.js/public/lib WORKDIR /opt/mean.js @@ -34,32 +62,17 @@ WORKDIR /opt/mean.js # when the local package.json file changes. # Install npm packages ADD package.json /opt/mean.js/package.json -RUN NODE_ENV=development npm install --quiet +RUN NODE_ENV=development npm install --quiet && npm cache clean # Install bower packages ADD bower.json /opt/mean.js/bower.json ADD .bowerrc /opt/mean.js/.bowerrc RUN bower install --quiet --allow-root --config.interactive=false -# Share local directory on the docker container -ADD . /opt/mean.js - -# Machine cleanup -RUN npm cache clean -RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* - # Set development environment as default ENV NODE_ENV production -# Ports generic -EXPOSE 80:80 -EXPOSE 443:443 - -# Port 3000 for MEAN.JS server -EXPOSE 3000:3000 - -# Port 35729 for livereload -EXPOSE 35729:35729 +ADD . /opt/mean.js # Run MEAN.JS server -CMD ["npm","run-script","start:prod"] +CMD ["npm","run-script","start:prod"] \ No newline at end of file