From c43bf1a95e3bf70aa46731d5d162dc7b6c740ba4 Mon Sep 17 00:00:00 2001 From: Christopher Martin Date: Sat, 19 Mar 2016 14:51:50 -0400 Subject: [PATCH 1/2] add dockerfile --- .dockerignore | 1 + Dockerfile | 20 ++++++++++++++++++++ package.json | 4 +++- 3 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 .dockerignore create mode 100644 Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 000000000..c2658d7d1 --- /dev/null +++ b/.dockerignore @@ -0,0 +1 @@ +node_modules/ diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000..58542fcbd --- /dev/null +++ b/Dockerfile @@ -0,0 +1,20 @@ +# To build and run with Docker: +# +# $ docker build -t ng2-quickstart . +# $ docker run -it --rm -p 3000:3000 -p 3001:3001 ng2-quickstart +# +FROM node:latest + +RUN mkdir -p /quickstart /home/nodejs && \ + groupadd -r nodejs && \ + useradd -r -g nodejs -d /home/nodejs -s /sbin/nologin nodejs && \ + chown -R nodejs:nodejs /home/nodejs + +WORKDIR /quickstart +COPY . /quickstart/ +RUN chown -R nodejs:nodejs /quickstart + +USER nodejs +RUN npm install + +CMD npm start diff --git a/package.json b/package.json index 080c70370..3d27d80ab 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,8 @@ "tsc:w": "tsc -w", "lite": "lite-server", "typings": "typings", + "docker-build": "docker build -t ng2-quickstart .", + "docker-run": "docker run -it --rm -p 3000:3000 -p 3001:3001 ng2-quickstart", "postinstall": "typings install" }, "license": "ISC", @@ -25,4 +27,4 @@ "typescript": "^1.8.9", "typings":"^0.7.9" } -} \ No newline at end of file +} From 7bdc8cd75740de77d949a0fc19b1daf7786777cf Mon Sep 17 00:00:00 2001 From: Christopher Martin Date: Sat, 19 Mar 2016 15:12:59 -0400 Subject: [PATCH 2/2] dockerfile speed optimizations --- Dockerfile | 7 ++++--- package.json | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 58542fcbd..724cbf350 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,10 +11,11 @@ RUN mkdir -p /quickstart /home/nodejs && \ chown -R nodejs:nodejs /home/nodejs WORKDIR /quickstart -COPY . /quickstart/ -RUN chown -R nodejs:nodejs /quickstart +COPY package.json typings.json /quickstart/ +RUN npm install --unsafe-perm=true +COPY . /quickstart +RUN chown -R nodejs:nodejs /quickstart USER nodejs -RUN npm install CMD npm start diff --git a/package.json b/package.json index 3d27d80ab..95db4c6ec 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "lite": "lite-server", "typings": "typings", "docker-build": "docker build -t ng2-quickstart .", - "docker-run": "docker run -it --rm -p 3000:3000 -p 3001:3001 ng2-quickstart", + "docker": "npm run docker-build && docker run -it --rm -p 3000:3000 -p 3001:3001 ng2-quickstart", "postinstall": "typings install" }, "license": "ISC",