Browse Source

Merge pull request #2 from rcsb/dev-CC-Docker

Dev cc docker
Alexander Rose 6 years ago
parent
commit
59c7a8df8d
4 changed files with 59 additions and 1 deletions
  1. 4 0
      .dockerignore
  2. 2 1
      .gitignore
  3. 40 0
      Dockerfile
  4. 13 0
      README.md

+ 4 - 0
.dockerignore

@@ -0,0 +1,4 @@
+.*
+node_modules
+npm-debug.log
+*.sublime-project

+ 2 - 1
.gitignore

@@ -6,4 +6,5 @@ npm-debug.log
 
 *.sublime-workspace
 
-web/render-test/index.js
+web/render-test/index.js
+.idea

+ 40 - 0
Dockerfile

@@ -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

+ 13 - 0
README.md

@@ -78,6 +78,19 @@ From the root of the project:
 
 and navigate to `build/viewer`
 
+
+**Run via Docker**
+
+Build the docker image
+
+    docker build -t molstar-proto .
+
+Run the image
+
+    docker run -p 8080:8080 molstar-proto
+
+
+
 ### Code generation
 **CIF schemas**