From 70c07f32e0a70b9078039341993a31ddf182d11c Mon Sep 17 00:00:00 2001 From: Aus Rasul Date: Wed, 1 Mar 2017 10:13:13 +0100 Subject: [PATCH 1/2] Now can run jsmpeg on docker containers. Three containers: websocket relay container. http-server container. ffmpeg container. TODO Add Compose file with camera device forward. --- .dockerignore | 2 ++ Dockerfile | 5 +++++ INSTALL | 3 +++ index.html | 22 ++++++++++++++++++++++ package.json | 13 +++++++++++++ 5 files changed, 45 insertions(+) create mode 100644 .dockerignore create mode 100644 Dockerfile create mode 100644 INSTALL create mode 100644 index.html create mode 100644 package.json diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..93f13619 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,2 @@ +node_modules +npm-debug.log diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..e9012c33 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,5 @@ +FROM node:latest +RUN mkdir -p /usr/src/app +WORKDIR /usr/src/app +COPY . /usr/src/app/ +RUN npm install diff --git a/INSTALL b/INSTALL new file mode 100644 index 00000000..a519cfa0 --- /dev/null +++ b/INSTALL @@ -0,0 +1,3 @@ +docker build -t node-web . +docker run --rm --name ws node-web node websocket-relay.js sec 8081 8082 +docker run -d --rm --name web -p 80:80 node-web node node_modules/http-server/bin/http-server . -p 80 diff --git a/index.html b/index.html new file mode 100644 index 00000000..81a737db --- /dev/null +++ b/index.html @@ -0,0 +1,22 @@ + + + + JSMpeg Stream Client + + + + + + + + + diff --git a/package.json b/package.json new file mode 100644 index 00000000..e3409124 --- /dev/null +++ b/package.json @@ -0,0 +1,13 @@ + { + "name": "docker_web_app", + "version": "1.0.0", + "description": "Nodejs webserver on Docker", + "author": "Aus Rasul ", + "scripts": { + "start": "node server.js" + }, + "dependencies": { + "http-server": "^0.9.0", + "ws": "^2.1.0" + } + } From feaa0932c230b16c8f252db79b7712167b845a59 Mon Sep 17 00:00:00 2001 From: Aus Date: Sat, 4 Mar 2017 23:04:33 +0100 Subject: [PATCH 2/2] Added a docker file per service. Added docker-compose file --- Dockerfile-ffmpeg | 2 ++ Dockerfile-http | 6 ++++++ Dockerfile => Dockerfile-ws | 1 + INSTALL | 3 --- docker-compose.yaml | 28 ++++++++++++++++++++++++++++ 5 files changed, 37 insertions(+), 3 deletions(-) create mode 100644 Dockerfile-ffmpeg create mode 100644 Dockerfile-http rename Dockerfile => Dockerfile-ws (70%) delete mode 100644 INSTALL create mode 100644 docker-compose.yaml diff --git a/Dockerfile-ffmpeg b/Dockerfile-ffmpeg new file mode 100644 index 00000000..c195a504 --- /dev/null +++ b/Dockerfile-ffmpeg @@ -0,0 +1,2 @@ +FROM jrottenberg/ffmpeg +#CMD "-f v4l2 -framerate 25 -video_size 640x480 -i /dev/video0 -f mpegts -codec:v mpeg1video -s 640x480 -b:v 1000k -bf 0 http://ws-relay:8081/sec" diff --git a/Dockerfile-http b/Dockerfile-http new file mode 100644 index 00000000..47f14000 --- /dev/null +++ b/Dockerfile-http @@ -0,0 +1,6 @@ +FROM node:latest +RUN mkdir -p /usr/src/app +WORKDIR /usr/src/app +COPY . /usr/src/app/ +RUN npm install +CMD node node_modules/http-server/bin/http-server . -p 8090 diff --git a/Dockerfile b/Dockerfile-ws similarity index 70% rename from Dockerfile rename to Dockerfile-ws index e9012c33..4bb3bbf3 100644 --- a/Dockerfile +++ b/Dockerfile-ws @@ -3,3 +3,4 @@ RUN mkdir -p /usr/src/app WORKDIR /usr/src/app COPY . /usr/src/app/ RUN npm install +CMD node websocket-relay.js sec 8081 8082 diff --git a/INSTALL b/INSTALL deleted file mode 100644 index a519cfa0..00000000 --- a/INSTALL +++ /dev/null @@ -1,3 +0,0 @@ -docker build -t node-web . -docker run --rm --name ws node-web node websocket-relay.js sec 8081 8082 -docker run -d --rm --name web -p 80:80 node-web node node_modules/http-server/bin/http-server . -p 80 diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 00000000..254f63c2 --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,28 @@ +version: '3' +services: + ffmpeg: + build: + context: . + dockerfile: Dockerfile-ffmpeg + depends_on: + - ws-relay + - http-server + links: + - ws-relay + entrypoint: ffmpeg + command: -f v4l2 -framerate 25 -video_size 640x480 -i /dev/video0 -f mpegts -codec:v mpeg1video -s 640x480 -b:v 1000k -bf 0 http://ws-relay:8081/sec + devices: + - "/dev/video0:/dev/video0" + http-server: + build: + context: . + dockerfile: Dockerfile-http + ports: + - "8090:8090" + ws-relay: + build: + context: . + dockerfile: Dockerfile-ws + ports: + - "8081:8081" + - "8082:8082"