From 89af46b6fea7a2ac67eb21f7d60bcdbad7b371e5 Mon Sep 17 00:00:00 2001 From: Dmitry Mikushin Date: Wed, 25 Jan 2023 13:14:14 +0100 Subject: [PATCH] Adding scripts and README instruction to build and run the calibration example within Docker --- README.md | 9 +++++++++ docker/Dockerfile | 33 +++++++++++++++++++++++++++++++++ docker/docker-compose.yml | 9 +++++++++ 3 files changed, 51 insertions(+) create mode 100644 docker/Dockerfile create mode 100644 docker/docker-compose.yml diff --git a/README.md b/README.md index 9210bc616..07c7414d1 100644 --- a/README.md +++ b/README.md @@ -67,6 +67,15 @@ To run the example files as a server: # Run the webpage index.html as a server npm run serve +## Build and run the Example with Docker + +The WebGazer can be deployed locally using the provided Docker configuration: + +1. Build WebGazer in a Docker container: `docker build -t webgazer . -f docker/Dockerfile` +2. Start the docker container as a service: `cd docker && docker-compose up -d` +3. Visit the WebGazer example application at http://localhost:8080/calibration.html +4. Stop the docker service, when you don't need it anymore: `cd docker && docker-compose down` + ## Browser Support The following browsers support WebGazer.js: diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 000000000..005d4dd1d --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,33 @@ +FROM node:16 AS builder + +# Create app directory +WORKDIR /usr/src/app + +# Install app dependencies +# A wildcard is used to ensure both package.json AND package-lock.json are copied +# where available (npm@5+) +COPY package*.json ./ + +RUN npm install + +# Bundle app source +COPY ./src ./src +COPY ./README.md . +COPY ./webpack.config.js . +RUN mkdir bin + +RUN npm run build + +FROM node:16 + +WORKDIR /usr/src/app +COPY ./www ./www + +WORKDIR /usr/src/app/www +COPY --from=builder /usr/src/app/dist/webgazer.js . +COPY --from=builder /usr/src/app/dist/webgazer.js.map . +RUN npm install + +EXPOSE 3000 +CMD ["npm", "run", "serve"] + diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml new file mode 100644 index 000000000..7a6afdddc --- /dev/null +++ b/docker/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.7' + +services: + webgazer: + image: webgazer + restart: unless-stopped + ports: + - "127.0.0.1:8080:3000" +