|
@@ -0,0 +1,40 @@
|
|
|
+# This is to build a container that demos the Molstar Canvas prototype
|
|
|
+# Source material: https://nodejs.org/en/docs/guides/nodejs-docker-webapp/
|
|
|
+# Source material: https://derickbailey.com/2017/05/31/how-a-650mb-node-js-image-for-docker-uses-less-space-than-a-50mb-image/
|
|
|
+# Source material: https://hub.docker.com/_/node/
|
|
|
+
|
|
|
+# Use the slimed NodeJS source, yielding a space savings of 600MB (~66% of total)
|
|
|
+FROM node:alpine
|
|
|
+
|
|
|
+# Create app directory
|
|
|
+WORKDIR /usr/src/app
|
|
|
+
|
|
|
+# Install app dependencies
|
|
|
+# A wildcard is used to ensure both package.json AND package-lock.json AND tslint.json AND tsconfig.json are copied
|
|
|
+# where available (npm@5+)
|
|
|
+COPY *.json ./
|
|
|
+
|
|
|
+# Install all dependencies and copy results
|
|
|
+RUN npm install
|
|
|
+COPY . .
|
|
|
+
|
|
|
+# Build application and bundle results
|
|
|
+RUN npm run build
|
|
|
+COPY build/ build/
|
|
|
+
|
|
|
+# Build Canvas application and bundle results
|
|
|
+RUN npm run build-canvas
|
|
|
+COPY build/ build/
|
|
|
+
|
|
|
+# Open ports for HTTP
|
|
|
+EXPOSE 8080/tcp
|
|
|
+
|
|
|
+# Setup standalone simple webserver to run the demo
|
|
|
+RUN npm install http-server -g
|
|
|
+
|
|
|
+# Start NodeJS at container stand up
|
|
|
+CMD [ "http-server", "build/canvas/", "-p", "8080" ]
|
|
|
+
|
|
|
+# Developer helpers (what is inside this container?)
|
|
|
+RUN node -v
|
|
|
+RUN ls -alh
|