From 598f592022336f24d7a11d3ec7bb950dd95af31b Mon Sep 17 00:00:00 2001 From: Dashlorde Date: Sun, 11 Feb 2018 23:38:21 -0500 Subject: [PATCH 01/12] add x86 version --- x86/bell/build.sh | 1 + x86/bell/dockerfile | 25 ++++++++++++++++++ x86/bell/package.json | 26 +++++++++++++++++++ x86/bell/server.js | 23 +++++++++++++++++ x86/db-init/build.sh | 1 + x86/db-init/couchdb-setup.sh | 44 ++++++++++++++++++++++++++++++++ x86/db-init/docker-entrypoint.sh | 13 ++++++++++ x86/db-init/dockerfile | 20 +++++++++++++++ x86/docker-compose.yml | 23 +++++++++++++++++ 9 files changed, 176 insertions(+) create mode 100644 x86/bell/build.sh create mode 100644 x86/bell/dockerfile create mode 100644 x86/bell/package.json create mode 100644 x86/bell/server.js create mode 100644 x86/db-init/build.sh create mode 100644 x86/db-init/couchdb-setup.sh create mode 100644 x86/db-init/docker-entrypoint.sh create mode 100644 x86/db-init/dockerfile create mode 100644 x86/docker-compose.yml diff --git a/x86/bell/build.sh b/x86/bell/build.sh new file mode 100644 index 0000000..98b14fc --- /dev/null +++ b/x86/bell/build.sh @@ -0,0 +1 @@ +docker build . -t treehouses/bell:node-latest diff --git a/x86/bell/dockerfile b/x86/bell/dockerfile new file mode 100644 index 0000000..390e01b --- /dev/null +++ b/x86/bell/dockerfile @@ -0,0 +1,25 @@ +FROM node:6.11-alpine + +LABEL MAINTAINER Yunlu Zhou + +ENV version '0.13.21' + +RUN mkdir -p /app/server/src + +RUN apk add --update openssl && npm install express && \ + wget -O BeLL-Apps-${version}.tar.gz \ + https://github.com/open-learning-exchange/BeLL-Apps/archive/${version}.tar.gz && \ + tar xvf BeLL-Apps-${version}.tar.gz && \ + mv BeLL-Apps-${version}/* /app/server/src/ && \ + rm /app/server/src/package.json + +WORKDIR /app/server/src + +COPY server.js ./ +COPY package.json ./ + +RUN chmod +x ./server.js && npm install + +EXPOSE 80 + +CMD ["npm","start"] diff --git a/x86/bell/package.json b/x86/bell/package.json new file mode 100644 index 0000000..e2a3cfd --- /dev/null +++ b/x86/bell/package.json @@ -0,0 +1,26 @@ +{ + "name": "bell-apps", + "description": "A collection of Apps for the BeLL", + "version": "0.0.1", + "author": "R.J. Steinert ", + "main": "server.js", + "scripts": { + "start": "node server.js" + }, + "repository": { + "type": "git", + "url": "http://github.com/open-learning-exchange/bell-apps.git" + }, + "dependencies": { + "couchapp": ">= 0.10.0", + "underscore": ">= 1.5.2", + "nano": "6.0.1", + "commander": "2.5.0", + "request": ">= 2.27.0", + "co": ">= 4.6.0", + "cookie": ">= 0.3.1", + "express": "^4.16.1" + + }, + "engines": { "node": ">= 6.9.2" } +} \ No newline at end of file diff --git a/x86/bell/server.js b/x86/bell/server.js new file mode 100644 index 0000000..1ebbcd1 --- /dev/null +++ b/x86/bell/server.js @@ -0,0 +1,23 @@ +#!/usr/bin/env node + +var express = require('express') +var PortJack = express() +var path = require("path"); + +PortJack.get(/^(.+)$/, function(req, res) { + var options = { + "127.0.0.1": "http://127.0.0.1:2200/apps/_design/bell/MyApp/index.html", + "localhost": "http://localhost:2200/apps/_design/bell/MyApp/index.html" + } + + if (options.hasOwnProperty(req.hostname)) { + res.setHeader('Location', options[req.hostname]) + } else { + res.setHeader('Location', 'http://ole.org') + } + + res.statusCode = 302 + res.end() +}) + +PortJack.listen(80) \ No newline at end of file diff --git a/x86/db-init/build.sh b/x86/db-init/build.sh new file mode 100644 index 0000000..754469c --- /dev/null +++ b/x86/db-init/build.sh @@ -0,0 +1 @@ +docker build . -t treehouses/bell:db-init-latest diff --git a/x86/db-init/couchdb-setup.sh b/x86/db-init/couchdb-setup.sh new file mode 100644 index 0000000..a3636a5 --- /dev/null +++ b/x86/db-init/couchdb-setup.sh @@ -0,0 +1,44 @@ +#!/bin/bash + +# Options are -u for username -w for passWord and -p for port number +while getopts "u:w:p:h:" option; do + case $option in + u) COUCHUSER=${OPTARG};; + w) COUCHPASSWORD=${OPTARG};; + p) PORT=${OPTARG};; + h) HOST=${OPTARG};; + esac +done + +if [ -z "$HOST" ] +then + HOST=127.0.0.1 +fi + +# Default port for CouchDB accessed from host machine is 2200 +PORT=${PORT:-2200} +if [ -z "$COUCHUSER" ] +then + COUCHURL=http://$HOST:$PORT +else + COUCHURL=http://$COUCHUSER:$COUCHPASSWORD@$HOST:$PORT +fi + +curl -X PUT $COUCHURL/_users +curl -X PUT $COUCHURL/_replicator +curl -X PUT $COUCHURL/_global_changes + +for database in /app/databases/*.js; do + curl -X PUT $COUCHURL/${database:15:-3} + case ${database:15:-3} in + "communities" | "languages" | "configurations" ) ;; + * ) /app/node_modules/.bin/couchapp push $database $COUCHURL/${database:15:-3} ;; + esac +done + +## add bare minimal required data to couchdb for launching bell-apps smoothly +for filename in /app/init_docs/languages/*.txt; do + curl -d @$filename -H "Content-Type: application/json" -X POST $COUCHURL/languages; +done +curl -d @app/init_docs/ConfigurationsDoc-Community.txt -H "Content-Type: application/json" -X POST $COUCHURL/configurations +curl -d @app/init_docs/admin.txt -H "Content-Type: application/json" -X POST $COUCHURL/members diff --git a/x86/db-init/docker-entrypoint.sh b/x86/db-init/docker-entrypoint.sh new file mode 100644 index 0000000..2fb992e --- /dev/null +++ b/x86/db-init/docker-entrypoint.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +#WAIT_TIME +while ! curl -X GET couchdb:5984/_all_dbs ; do + sleep 1 +done + + +#CORS SETUP +add-cors-to-couchdb http://couchdb:5984 + +#MIGRATOR +/root/couchdb-setup.sh -p 5984 -h couchdb diff --git a/x86/db-init/dockerfile b/x86/db-init/dockerfile new file mode 100644 index 0000000..b00e9ad --- /dev/null +++ b/x86/db-init/dockerfile @@ -0,0 +1,20 @@ +FROM node:6.11-alpine + +ENV version '0.13.21' + +RUN apk update && \ + apk add --no-cache bash curl git jq openssl && \ + mkdir bell && wget -O bell/BeLL-Apps-${version}.tar.gz \ + https://github.com/open-learning-exchange/BeLL-Apps/archive/0.13.21.tar.gz && \ + cd bell && tar xvf BeLL-Apps-${version}.tar.gz && \ + mkdir -p /app && mv BeLL-Apps-${version}/* /app && \ + chmod +x /app/node_modules/.bin/couchapp && \ + #CORS DOWNLOAD + npm install -g add-cors-to-couchdb + +COPY docker-entrypoint.sh /root/docker-entrypoint.sh +COPY couchdb-setup.sh /root/couchdb-setup.sh + +RUN chmod +x /root/couchdb-setup.sh + +CMD sh /root/docker-entrypoint.sh diff --git a/x86/docker-compose.yml b/x86/docker-compose.yml new file mode 100644 index 0000000..80432b7 --- /dev/null +++ b/x86/docker-compose.yml @@ -0,0 +1,23 @@ +services: + couchdb: + expose: + - 5984 + image: klaemo/couchdb + ports: + - "2200:5984" + - "2201:5986" + db-init: + image: treehouses/bell:db-init-latest + depends_on: + - couchdb + bell: + image: treehouses/bell:node-latest + ports: + - "80:80" + environment: + - HOST_PROTOCOL=http + - DB_HOST=127.0.0.1 + - DB_PORT=2200 + depends_on: + - couchdb +version: "2" From 68728db1ec9669c2baf6707db75dab16102bea14 Mon Sep 17 00:00:00 2001 From: Dashlorde Date: Mon, 12 Feb 2018 23:56:16 -0500 Subject: [PATCH 02/12] add readme --- x86/bell/dockerfile | 4 +++- x86/build.sh | 2 ++ x86/db-init/dockerfile | 4 ++++ x86/readme.md | 45 ++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 x86/build.sh create mode 100644 x86/readme.md diff --git a/x86/bell/dockerfile b/x86/bell/dockerfile index 390e01b..4ba30b5 100644 --- a/x86/bell/dockerfile +++ b/x86/bell/dockerfile @@ -1,6 +1,8 @@ FROM node:6.11-alpine -LABEL MAINTAINER Yunlu Zhou +LABEL MAINTAINER "Dashlorde " +LABEL MAINTAINER "Abdurrachman Mappuji " +LABEL MAINTAINER "dogi " ENV version '0.13.21' diff --git a/x86/build.sh b/x86/build.sh new file mode 100644 index 0000000..49844a2 --- /dev/null +++ b/x86/build.sh @@ -0,0 +1,2 @@ +docker build bell/. -t treehouses/bell:node-latest +docker build db-init/. -t treehouses/bell:db-init-latest \ No newline at end of file diff --git a/x86/db-init/dockerfile b/x86/db-init/dockerfile index b00e9ad..ccebade 100644 --- a/x86/db-init/dockerfile +++ b/x86/db-init/dockerfile @@ -1,5 +1,9 @@ FROM node:6.11-alpine +LABEL MAINTAINER "Dashlorde " +LABEL MAINTAINER "Abdurrachman Mappuji " +LABEL MAINTAINER "dogi " + ENV version '0.13.21' RUN apk update && \ diff --git a/x86/readme.md b/x86/readme.md new file mode 100644 index 0000000..1ab38bd --- /dev/null +++ b/x86/readme.md @@ -0,0 +1,45 @@ +# Bell + +Dockerize bell app + +## Components + +* Bell. It is bell app container build with node.js. +* Couchdb. It is the database container which is initiated with `db-init`. + +--- + +## How to use + +1. Download the source code. Get into the version folder (x86 or arm for example). +2. Run command to build the image + + ```shell + /bin/bash build.sh + ``` +3. Run command to start containers + + ```shell + docker-compose up -d + ``` +4. Run command to stop containers + + ```shell + docker-compose stop + ``` +5. Run command to delete the environment + + ```shell + docker-compose down + ``` +6. See if docker containers running + + ```shell + docker ps + ``` + +7. View container log + + ```shell + docker logs {{container_id}} + ``` From 3b3c998564e62a51eab56971c22d6b954143d58b Mon Sep 17 00:00:00 2001 From: Dashlorde Date: Mon, 12 Feb 2018 23:57:35 -0500 Subject: [PATCH 03/12] update readme --- x86/readme.md => readme.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename x86/readme.md => readme.md (100%) diff --git a/x86/readme.md b/readme.md similarity index 100% rename from x86/readme.md rename to readme.md From 1057a8b367a290c3e0fe18037d839ed2435f5427 Mon Sep 17 00:00:00 2001 From: Dashlorde Date: Mon, 12 Feb 2018 23:58:42 -0500 Subject: [PATCH 04/12] update readme --- readme.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/readme.md b/readme.md index 1ab38bd..37a46e2 100644 --- a/readme.md +++ b/readme.md @@ -7,8 +7,6 @@ Dockerize bell app * Bell. It is bell app container build with node.js. * Couchdb. It is the database container which is initiated with `db-init`. ---- - ## How to use 1. Download the source code. Get into the version folder (x86 or arm for example). From dc2c5f4a76800e78567cc2caceefd2a288508bdc Mon Sep 17 00:00:00 2001 From: Dashlorde Date: Tue, 13 Feb 2018 14:19:20 -0500 Subject: [PATCH 05/12] delete environment --- x86/docker-compose.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/x86/docker-compose.yml b/x86/docker-compose.yml index 80432b7..11d9c85 100644 --- a/x86/docker-compose.yml +++ b/x86/docker-compose.yml @@ -14,10 +14,6 @@ services: image: treehouses/bell:node-latest ports: - "80:80" - environment: - - HOST_PROTOCOL=http - - DB_HOST=127.0.0.1 - - DB_PORT=2200 depends_on: - couchdb version: "2" From d7805750b203e0af4c304c37bdd82d4bdbb4fac0 Mon Sep 17 00:00:00 2001 From: Dashlorde Date: Fri, 23 Feb 2018 20:53:37 -0500 Subject: [PATCH 06/12] add rpi version --- arm/bell/build.sh | 1 + {x86 => arm}/bell/dockerfile | 2 +- {x86 => arm}/bell/package.json | 0 {x86 => arm}/bell/server.js | 2 +- arm/build.sh | 2 ++ arm/db-init/build.sh | 1 + {x86 => arm}/db-init/couchdb-setup.sh | 0 {x86 => arm}/db-init/docker-entrypoint.sh | 0 {x86 => arm}/db-init/dockerfile | 3 +- {x86 => arm}/docker-compose.yml | 8 ++--- readme.md | 43 ----------------------- x86/bell/build.sh | 1 - x86/build.sh | 2 -- x86/db-init/build.sh | 1 - 14 files changed, 11 insertions(+), 55 deletions(-) create mode 100644 arm/bell/build.sh rename {x86 => arm}/bell/dockerfile (94%) rename {x86 => arm}/bell/package.json (100%) rename {x86 => arm}/bell/server.js (84%) create mode 100644 arm/build.sh create mode 100644 arm/db-init/build.sh rename {x86 => arm}/db-init/couchdb-setup.sh (100%) rename {x86 => arm}/db-init/docker-entrypoint.sh (100%) rename {x86 => arm}/db-init/dockerfile (95%) rename {x86 => arm}/docker-compose.yml (58%) delete mode 100644 readme.md delete mode 100644 x86/bell/build.sh delete mode 100644 x86/build.sh delete mode 100644 x86/db-init/build.sh diff --git a/arm/bell/build.sh b/arm/bell/build.sh new file mode 100644 index 0000000..873e32c --- /dev/null +++ b/arm/bell/build.sh @@ -0,0 +1 @@ +docker build . -t treehouses/bell:rpi-latest diff --git a/x86/bell/dockerfile b/arm/bell/dockerfile similarity index 94% rename from x86/bell/dockerfile rename to arm/bell/dockerfile index 4ba30b5..83f8fde 100644 --- a/x86/bell/dockerfile +++ b/arm/bell/dockerfile @@ -1,4 +1,4 @@ -FROM node:6.11-alpine +FROM hypriot/rpi-node:6.10.0-alpine LABEL MAINTAINER "Dashlorde " LABEL MAINTAINER "Abdurrachman Mappuji " diff --git a/x86/bell/package.json b/arm/bell/package.json similarity index 100% rename from x86/bell/package.json rename to arm/bell/package.json diff --git a/x86/bell/server.js b/arm/bell/server.js similarity index 84% rename from x86/bell/server.js rename to arm/bell/server.js index 1ebbcd1..2545731 100644 --- a/x86/bell/server.js +++ b/arm/bell/server.js @@ -13,7 +13,7 @@ PortJack.get(/^(.+)$/, function(req, res) { if (options.hasOwnProperty(req.hostname)) { res.setHeader('Location', options[req.hostname]) } else { - res.setHeader('Location', 'http://ole.org') + res.setHeader('Location', 'http://docker.ole.org:2200/apps/_design/bell/MyApp/index.html') } res.statusCode = 302 diff --git a/arm/build.sh b/arm/build.sh new file mode 100644 index 0000000..bb89293 --- /dev/null +++ b/arm/build.sh @@ -0,0 +1,2 @@ +docker build bell/. -t treehouses/bell:rpi-latest +docker build db-init/. -t treehouses/bell:rpi-db-init-latest \ No newline at end of file diff --git a/arm/db-init/build.sh b/arm/db-init/build.sh new file mode 100644 index 0000000..0f80863 --- /dev/null +++ b/arm/db-init/build.sh @@ -0,0 +1 @@ +docker build . -t treehouses/bell:rpi-db-init-latest diff --git a/x86/db-init/couchdb-setup.sh b/arm/db-init/couchdb-setup.sh similarity index 100% rename from x86/db-init/couchdb-setup.sh rename to arm/db-init/couchdb-setup.sh diff --git a/x86/db-init/docker-entrypoint.sh b/arm/db-init/docker-entrypoint.sh similarity index 100% rename from x86/db-init/docker-entrypoint.sh rename to arm/db-init/docker-entrypoint.sh diff --git a/x86/db-init/dockerfile b/arm/db-init/dockerfile similarity index 95% rename from x86/db-init/dockerfile rename to arm/db-init/dockerfile index ccebade..dda1eb9 100644 --- a/x86/db-init/dockerfile +++ b/arm/db-init/dockerfile @@ -1,4 +1,4 @@ -FROM node:6.11-alpine +FROM hypriot/rpi-node:6.10.0-alpine LABEL MAINTAINER "Dashlorde " LABEL MAINTAINER "Abdurrachman Mappuji " @@ -13,7 +13,6 @@ RUN apk update && \ cd bell && tar xvf BeLL-Apps-${version}.tar.gz && \ mkdir -p /app && mv BeLL-Apps-${version}/* /app && \ chmod +x /app/node_modules/.bin/couchapp && \ - #CORS DOWNLOAD npm install -g add-cors-to-couchdb COPY docker-entrypoint.sh /root/docker-entrypoint.sh diff --git a/x86/docker-compose.yml b/arm/docker-compose.yml similarity index 58% rename from x86/docker-compose.yml rename to arm/docker-compose.yml index 11d9c85..536a1ca 100644 --- a/x86/docker-compose.yml +++ b/arm/docker-compose.yml @@ -2,18 +2,18 @@ services: couchdb: expose: - 5984 - image: klaemo/couchdb + image: treehouses/rpi-couchdb:2.0.0 ports: - "2200:5984" - "2201:5986" db-init: - image: treehouses/bell:db-init-latest + image: treehouses/bell:rpi-db-init-latest depends_on: - couchdb bell: - image: treehouses/bell:node-latest + image: treehouses/bell:rpi-latest ports: - - "80:80" + - "8080:80" depends_on: - couchdb version: "2" diff --git a/readme.md b/readme.md deleted file mode 100644 index 37a46e2..0000000 --- a/readme.md +++ /dev/null @@ -1,43 +0,0 @@ -# Bell - -Dockerize bell app - -## Components - -* Bell. It is bell app container build with node.js. -* Couchdb. It is the database container which is initiated with `db-init`. - -## How to use - -1. Download the source code. Get into the version folder (x86 or arm for example). -2. Run command to build the image - - ```shell - /bin/bash build.sh - ``` -3. Run command to start containers - - ```shell - docker-compose up -d - ``` -4. Run command to stop containers - - ```shell - docker-compose stop - ``` -5. Run command to delete the environment - - ```shell - docker-compose down - ``` -6. See if docker containers running - - ```shell - docker ps - ``` - -7. View container log - - ```shell - docker logs {{container_id}} - ``` diff --git a/x86/bell/build.sh b/x86/bell/build.sh deleted file mode 100644 index 98b14fc..0000000 --- a/x86/bell/build.sh +++ /dev/null @@ -1 +0,0 @@ -docker build . -t treehouses/bell:node-latest diff --git a/x86/build.sh b/x86/build.sh deleted file mode 100644 index 49844a2..0000000 --- a/x86/build.sh +++ /dev/null @@ -1,2 +0,0 @@ -docker build bell/. -t treehouses/bell:node-latest -docker build db-init/. -t treehouses/bell:db-init-latest \ No newline at end of file diff --git a/x86/db-init/build.sh b/x86/db-init/build.sh deleted file mode 100644 index 754469c..0000000 --- a/x86/db-init/build.sh +++ /dev/null @@ -1 +0,0 @@ -docker build . -t treehouses/bell:db-init-latest From 1e755ae15fac9d70f7dcc9f992b8490407cfc323 Mon Sep 17 00:00:00 2001 From: Dashlorde Date: Tue, 13 Mar 2018 00:07:03 -0400 Subject: [PATCH 07/12] use environment variable --- arm/bell/dockerfile | 5 +---- arm/bell/package.json | 26 -------------------------- arm/bell/server.js | 3 ++- arm/docker-compose.yml | 2 ++ 4 files changed, 5 insertions(+), 31 deletions(-) delete mode 100644 arm/bell/package.json diff --git a/arm/bell/dockerfile b/arm/bell/dockerfile index 83f8fde..947696c 100644 --- a/arm/bell/dockerfile +++ b/arm/bell/dockerfile @@ -6,7 +6,7 @@ LABEL MAINTAINER "dogi " ENV version '0.13.21' -RUN mkdir -p /app/server/src +WORKDIR /app/server/src RUN apk add --update openssl && npm install express && \ wget -O BeLL-Apps-${version}.tar.gz \ @@ -15,10 +15,7 @@ RUN apk add --update openssl && npm install express && \ mv BeLL-Apps-${version}/* /app/server/src/ && \ rm /app/server/src/package.json -WORKDIR /app/server/src - COPY server.js ./ -COPY package.json ./ RUN chmod +x ./server.js && npm install diff --git a/arm/bell/package.json b/arm/bell/package.json deleted file mode 100644 index e2a3cfd..0000000 --- a/arm/bell/package.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "bell-apps", - "description": "A collection of Apps for the BeLL", - "version": "0.0.1", - "author": "R.J. Steinert ", - "main": "server.js", - "scripts": { - "start": "node server.js" - }, - "repository": { - "type": "git", - "url": "http://github.com/open-learning-exchange/bell-apps.git" - }, - "dependencies": { - "couchapp": ">= 0.10.0", - "underscore": ">= 1.5.2", - "nano": "6.0.1", - "commander": "2.5.0", - "request": ">= 2.27.0", - "co": ">= 4.6.0", - "cookie": ">= 0.3.1", - "express": "^4.16.1" - - }, - "engines": { "node": ">= 6.9.2" } -} \ No newline at end of file diff --git a/arm/bell/server.js b/arm/bell/server.js index 2545731..94cef0b 100644 --- a/arm/bell/server.js +++ b/arm/bell/server.js @@ -3,6 +3,7 @@ var express = require('express') var PortJack = express() var path = require("path"); +var HOST = process.env.HOST; PortJack.get(/^(.+)$/, function(req, res) { var options = { @@ -13,7 +14,7 @@ PortJack.get(/^(.+)$/, function(req, res) { if (options.hasOwnProperty(req.hostname)) { res.setHeader('Location', options[req.hostname]) } else { - res.setHeader('Location', 'http://docker.ole.org:2200/apps/_design/bell/MyApp/index.html') + res.setHeader('Location', 'http://' + HOST + ':2200/apps/_design/bell/MyApp/index.html') } res.statusCode = 302 diff --git a/arm/docker-compose.yml b/arm/docker-compose.yml index 536a1ca..694f4af 100644 --- a/arm/docker-compose.yml +++ b/arm/docker-compose.yml @@ -14,6 +14,8 @@ services: image: treehouses/bell:rpi-latest ports: - "8080:80" + environment: + - HOST=docker.ole.org depends_on: - couchdb version: "2" From b046ffd90421e3310f3f899eb94d3259baff5189 Mon Sep 17 00:00:00 2001 From: Dashlorde Date: Tue, 13 Mar 2018 02:04:32 -0400 Subject: [PATCH 08/12] delete useless server.js --- arm/bell/server.js | 24 ------------------------ arm/docker-compose.yml | 2 -- 2 files changed, 26 deletions(-) delete mode 100644 arm/bell/server.js diff --git a/arm/bell/server.js b/arm/bell/server.js deleted file mode 100644 index 94cef0b..0000000 --- a/arm/bell/server.js +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env node - -var express = require('express') -var PortJack = express() -var path = require("path"); -var HOST = process.env.HOST; - -PortJack.get(/^(.+)$/, function(req, res) { - var options = { - "127.0.0.1": "http://127.0.0.1:2200/apps/_design/bell/MyApp/index.html", - "localhost": "http://localhost:2200/apps/_design/bell/MyApp/index.html" - } - - if (options.hasOwnProperty(req.hostname)) { - res.setHeader('Location', options[req.hostname]) - } else { - res.setHeader('Location', 'http://' + HOST + ':2200/apps/_design/bell/MyApp/index.html') - } - - res.statusCode = 302 - res.end() -}) - -PortJack.listen(80) \ No newline at end of file diff --git a/arm/docker-compose.yml b/arm/docker-compose.yml index 694f4af..536a1ca 100644 --- a/arm/docker-compose.yml +++ b/arm/docker-compose.yml @@ -14,8 +14,6 @@ services: image: treehouses/bell:rpi-latest ports: - "8080:80" - environment: - - HOST=docker.ole.org depends_on: - couchdb version: "2" From 9dc9d2b9a57dba86409dc44df262a309aba2dece Mon Sep 17 00:00:00 2001 From: Dashlorde Date: Tue, 13 Mar 2018 02:06:36 -0400 Subject: [PATCH 09/12] update dockerfile --- arm/bell/dockerfile | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/arm/bell/dockerfile b/arm/bell/dockerfile index 947696c..168ab01 100644 --- a/arm/bell/dockerfile +++ b/arm/bell/dockerfile @@ -15,9 +15,7 @@ RUN apk add --update openssl && npm install express && \ mv BeLL-Apps-${version}/* /app/server/src/ && \ rm /app/server/src/package.json -COPY server.js ./ - -RUN chmod +x ./server.js && npm install +RUN npm install EXPOSE 80 From badafbe9842d9ae59353e16c09bdda46c4638ba1 Mon Sep 17 00:00:00 2001 From: Dashlorde Date: Tue, 13 Mar 2018 15:57:50 -0400 Subject: [PATCH 10/12] reduce hardcoded value --- arm/bell/dockerfile | 14 ++++++++------ arm/bell/server.js | 15 +++++++++++++++ arm/build-ready.sh | 2 ++ arm/build.sh | 4 ++-- arm/docker-compose-ready.yml | 21 +++++++++++++++++++++ arm/docker-compose.yml | 6 ++++-- 6 files changed, 52 insertions(+), 10 deletions(-) create mode 100644 arm/bell/server.js create mode 100644 arm/build-ready.sh create mode 100644 arm/docker-compose-ready.yml diff --git a/arm/bell/dockerfile b/arm/bell/dockerfile index 168ab01..1eb1f7a 100644 --- a/arm/bell/dockerfile +++ b/arm/bell/dockerfile @@ -6,16 +6,18 @@ LABEL MAINTAINER "dogi " ENV version '0.13.21' -WORKDIR /app/server/src - -RUN apk add --update openssl && npm install express && \ +RUN mkdir -p /app/server/src && \ + apk add --update openssl && npm install express && \ wget -O BeLL-Apps-${version}.tar.gz \ https://github.com/open-learning-exchange/BeLL-Apps/archive/${version}.tar.gz && \ tar xvf BeLL-Apps-${version}.tar.gz && \ - mv BeLL-Apps-${version}/* /app/server/src/ && \ - rm /app/server/src/package.json + mv BeLL-Apps-${version}/* /app/server/src/ + +WORKDIR /app/server/src + +COPY server.js ./ -RUN npm install +RUN chmod +x ./server.js && npm install EXPOSE 80 diff --git a/arm/bell/server.js b/arm/bell/server.js new file mode 100644 index 0000000..e468e65 --- /dev/null +++ b/arm/bell/server.js @@ -0,0 +1,15 @@ +#!/usr/bin/env node + +var express = require('express') +var PortJack = express() +var path = require("path"); +var HOST = process.env.HOST; + +PortJack.get(/^(.+)$/, function(req, res) { + + res.setHeader('Location', 'http://' + HOST + ':2200/apps/_design/bell/MyApp/index.html') + res.statusCode = 302 + res.end() +}) + +PortJack.listen(80) \ No newline at end of file diff --git a/arm/build-ready.sh b/arm/build-ready.sh new file mode 100644 index 0000000..ed421ea --- /dev/null +++ b/arm/build-ready.sh @@ -0,0 +1,2 @@ +docker build bell/. -t treehouses/bell:rpi-latest +docker build db-init/. -t treehouses/bell:rpi-db-init-latest diff --git a/arm/build.sh b/arm/build.sh index bb89293..9ce3ba0 100644 --- a/arm/build.sh +++ b/arm/build.sh @@ -1,2 +1,2 @@ -docker build bell/. -t treehouses/bell:rpi-latest -docker build db-init/. -t treehouses/bell:rpi-db-init-latest \ No newline at end of file +docker build bell/. -t bell:rpi-latest +docker build db-init/. -t bell:rpi-db-init-latest diff --git a/arm/docker-compose-ready.yml b/arm/docker-compose-ready.yml new file mode 100644 index 0000000..da4087a --- /dev/null +++ b/arm/docker-compose-ready.yml @@ -0,0 +1,21 @@ +services: + couchdb: + expose: + - 5984 + image: treehouses/rpi-couchdb:2.0.0 + ports: + - "2200:5984" + - "2201:5986" + db-init: + image: treehouses/bell:rpi-db-init-latest + depends_on: + - couchdb + bell: + image: treehouses/bell:rpi-latest + ports: + - "8080:80" + environment: + - HOST=127.0.0.1 + depends_on: + - couchdb +version: "2" diff --git a/arm/docker-compose.yml b/arm/docker-compose.yml index 536a1ca..3f6b4bf 100644 --- a/arm/docker-compose.yml +++ b/arm/docker-compose.yml @@ -7,13 +7,15 @@ services: - "2200:5984" - "2201:5986" db-init: - image: treehouses/bell:rpi-db-init-latest + image: bell:rpi-db-init-latest depends_on: - couchdb bell: - image: treehouses/bell:rpi-latest + image: bell:rpi-latest ports: - "8080:80" + environment: + - HOST=docker.ole.org depends_on: - couchdb version: "2" From 7104c41c559f6d1a0105b93d9a0b4cebb952d2b2 Mon Sep 17 00:00:00 2001 From: Dashlorde Date: Wed, 14 Mar 2018 13:22:03 -0400 Subject: [PATCH 11/12] change to use port 5984 --- arm/bell/dockerfile | 7 ++----- arm/bell/package.json | 26 ++++++++++++++++++++++++++ arm/bell/server.js | 2 +- arm/db-init/couchdb-setup.sh | 4 ++-- arm/docker-compose-ready.yml | 7 +++---- arm/docker-compose.yml | 5 ++--- 6 files changed, 36 insertions(+), 15 deletions(-) create mode 100644 arm/bell/package.json diff --git a/arm/bell/dockerfile b/arm/bell/dockerfile index 1eb1f7a..891150e 100644 --- a/arm/bell/dockerfile +++ b/arm/bell/dockerfile @@ -7,15 +7,12 @@ LABEL MAINTAINER "dogi " ENV version '0.13.21' RUN mkdir -p /app/server/src && \ - apk add --update openssl && npm install express && \ - wget -O BeLL-Apps-${version}.tar.gz \ - https://github.com/open-learning-exchange/BeLL-Apps/archive/${version}.tar.gz && \ - tar xvf BeLL-Apps-${version}.tar.gz && \ - mv BeLL-Apps-${version}/* /app/server/src/ + apk add --update openssl && npm install express WORKDIR /app/server/src COPY server.js ./ +COPY package.json ./ RUN chmod +x ./server.js && npm install diff --git a/arm/bell/package.json b/arm/bell/package.json new file mode 100644 index 0000000..e2a3cfd --- /dev/null +++ b/arm/bell/package.json @@ -0,0 +1,26 @@ +{ + "name": "bell-apps", + "description": "A collection of Apps for the BeLL", + "version": "0.0.1", + "author": "R.J. Steinert ", + "main": "server.js", + "scripts": { + "start": "node server.js" + }, + "repository": { + "type": "git", + "url": "http://github.com/open-learning-exchange/bell-apps.git" + }, + "dependencies": { + "couchapp": ">= 0.10.0", + "underscore": ">= 1.5.2", + "nano": "6.0.1", + "commander": "2.5.0", + "request": ">= 2.27.0", + "co": ">= 4.6.0", + "cookie": ">= 0.3.1", + "express": "^4.16.1" + + }, + "engines": { "node": ">= 6.9.2" } +} \ No newline at end of file diff --git a/arm/bell/server.js b/arm/bell/server.js index e468e65..db74d5f 100644 --- a/arm/bell/server.js +++ b/arm/bell/server.js @@ -7,7 +7,7 @@ var HOST = process.env.HOST; PortJack.get(/^(.+)$/, function(req, res) { - res.setHeader('Location', 'http://' + HOST + ':2200/apps/_design/bell/MyApp/index.html') + res.setHeader('Location', 'http://' + HOST + ':5984/apps/_design/bell/MyApp/index.html') res.statusCode = 302 res.end() }) diff --git a/arm/db-init/couchdb-setup.sh b/arm/db-init/couchdb-setup.sh index a3636a5..2edf78b 100644 --- a/arm/db-init/couchdb-setup.sh +++ b/arm/db-init/couchdb-setup.sh @@ -15,8 +15,8 @@ then HOST=127.0.0.1 fi -# Default port for CouchDB accessed from host machine is 2200 -PORT=${PORT:-2200} +# Default port for CouchDB accessed from host machine is 5984 +PORT=${PORT:-5984} if [ -z "$COUCHUSER" ] then COUCHURL=http://$HOST:$PORT diff --git a/arm/docker-compose-ready.yml b/arm/docker-compose-ready.yml index da4087a..a47a7f8 100644 --- a/arm/docker-compose-ready.yml +++ b/arm/docker-compose-ready.yml @@ -2,10 +2,9 @@ services: couchdb: expose: - 5984 - image: treehouses/rpi-couchdb:2.0.0 + image: matthiasg/rpi-couchdb:1.6.1 ports: - - "2200:5984" - - "2201:5986" + - "5984:5984" db-init: image: treehouses/bell:rpi-db-init-latest depends_on: @@ -15,7 +14,7 @@ services: ports: - "8080:80" environment: - - HOST=127.0.0.1 + - HOST=docker.ole.org depends_on: - couchdb version: "2" diff --git a/arm/docker-compose.yml b/arm/docker-compose.yml index 3f6b4bf..5fcc348 100644 --- a/arm/docker-compose.yml +++ b/arm/docker-compose.yml @@ -2,10 +2,9 @@ services: couchdb: expose: - 5984 - image: treehouses/rpi-couchdb:2.0.0 + image: matthiasg/rpi-couchdb:1.6.1 ports: - - "2200:5984" - - "2201:5986" + - "5984:5984" db-init: image: bell:rpi-db-init-latest depends_on: From 32a345a2a4e2508f17c5ea1ac2ff482ed392234a Mon Sep 17 00:00:00 2001 From: Dashlorde Date: Wed, 14 Mar 2018 16:36:35 -0400 Subject: [PATCH 12/12] update file name --- arm/bell/Dockerfile | 21 +++++++++++++++++++++ arm/db-init/Dockerfile | 23 +++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 arm/bell/Dockerfile create mode 100644 arm/db-init/Dockerfile diff --git a/arm/bell/Dockerfile b/arm/bell/Dockerfile new file mode 100644 index 0000000..891150e --- /dev/null +++ b/arm/bell/Dockerfile @@ -0,0 +1,21 @@ +FROM hypriot/rpi-node:6.10.0-alpine + +LABEL MAINTAINER "Dashlorde " +LABEL MAINTAINER "Abdurrachman Mappuji " +LABEL MAINTAINER "dogi " + +ENV version '0.13.21' + +RUN mkdir -p /app/server/src && \ + apk add --update openssl && npm install express + +WORKDIR /app/server/src + +COPY server.js ./ +COPY package.json ./ + +RUN chmod +x ./server.js && npm install + +EXPOSE 80 + +CMD ["npm","start"] diff --git a/arm/db-init/Dockerfile b/arm/db-init/Dockerfile new file mode 100644 index 0000000..dda1eb9 --- /dev/null +++ b/arm/db-init/Dockerfile @@ -0,0 +1,23 @@ +FROM hypriot/rpi-node:6.10.0-alpine + +LABEL MAINTAINER "Dashlorde " +LABEL MAINTAINER "Abdurrachman Mappuji " +LABEL MAINTAINER "dogi " + +ENV version '0.13.21' + +RUN apk update && \ + apk add --no-cache bash curl git jq openssl && \ + mkdir bell && wget -O bell/BeLL-Apps-${version}.tar.gz \ + https://github.com/open-learning-exchange/BeLL-Apps/archive/0.13.21.tar.gz && \ + cd bell && tar xvf BeLL-Apps-${version}.tar.gz && \ + mkdir -p /app && mv BeLL-Apps-${version}/* /app && \ + chmod +x /app/node_modules/.bin/couchapp && \ + npm install -g add-cors-to-couchdb + +COPY docker-entrypoint.sh /root/docker-entrypoint.sh +COPY couchdb-setup.sh /root/couchdb-setup.sh + +RUN chmod +x /root/couchdb-setup.sh + +CMD sh /root/docker-entrypoint.sh