Skip to content
Snippets Groups Projects
Unverified Commit 717da8d1 authored by Alexander Rose's avatar Alexander Rose Committed by GitHub
Browse files

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

Dev cc docker
parents 5a80def1 484420bb
No related branches found
No related tags found
No related merge requests found
......@@ -3,15 +3,18 @@
# 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/
### Builder Stage (Multi-Stage Docker Build)
# Use the slimed NodeJS source, yielding a space savings of 600MB (~66% of total)
FROM node:alpine
FROM node:alpine as builder
ENV NODEROOT /usr/src/app/
# Create app directory
WORKDIR /usr/src/app
WORKDIR $NODEROOT
# 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+)
# A wildcard is used to ensure the following are copied
# 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
......@@ -21,17 +24,16 @@ COPY . .
# Build library and canvas application then copy results
RUN npm run build
RUN npm run build-canvas
COPY build/canvas/ build/canvas/
# Open ports for HTTP
EXPOSE 8080/tcp
COPY . .
# Setup standalone simple webserver to run the demo
RUN npm install http-server -g
### Runtime Stage (Multi-Stage Docker Build)
FROM httpd:2.4 as runtime
ENV NODEROOT /usr/src/app
ENV HTTPDROOT /usr/local/apache2/htdocs/
# Start NodeJS at container stand up
CMD [ "http-server", "build/canvas/", "-p", "8080" ]
## Code must be placed into /usr/local/apache2/htdocs/
WORKDIR $HTTPDROOT
COPY --from=builder $NODEROOT/build/canvas/ .
# Developer helpers (what is inside this container?)
RUN node -v
RUN ls -alh
# Open ports for HTTP
EXPOSE 80
......@@ -83,11 +83,11 @@ and navigate to `build/viewer`
Build the docker image
docker build -t molstar-proto .
docker build -t molstar/proto:httpd .
Run the image
docker run -p 8080:8080 molstar-proto
docker run -d -p 80:80 molstar/proto:httpd
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment