From 598f592022336f24d7a11d3ec7bb950dd95af31b Mon Sep 17 00:00:00 2001 From: Dashlorde Date: Sun, 11 Feb 2018 23:38:21 -0500 Subject: [PATCH 01/13] 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/13] 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/13] 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/13] 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/13] 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 55108e292b7892fa85d6511e853491bcbf6fe6ef Mon Sep 17 00:00:00 2001 From: Dashlorde Date: Fri, 23 Feb 2018 20:58:02 -0500 Subject: [PATCH 06/13] update remote host name --- x86/bell/build.sh | 2 +- x86/bell/server.js | 2 +- x86/build.sh | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/x86/bell/build.sh b/x86/bell/build.sh index 98b14fc..a147df4 100644 --- a/x86/bell/build.sh +++ b/x86/bell/build.sh @@ -1 +1 @@ -docker build . -t treehouses/bell:node-latest +docker build . -t treehouses/bell:latest diff --git a/x86/bell/server.js b/x86/bell/server.js index 1ebbcd1..2545731 100644 --- a/x86/bell/server.js +++ b/x86/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/x86/build.sh b/x86/build.sh index 49844a2..58852c8 100644 --- a/x86/build.sh +++ b/x86/build.sh @@ -1,2 +1,2 @@ -docker build bell/. -t treehouses/bell:node-latest +docker build bell/. -t treehouses/bell:latest docker build db-init/. -t treehouses/bell:db-init-latest \ No newline at end of file From d4e1282f5e48c0d3223dc45aa934f2e35ecee137 Mon Sep 17 00:00:00 2001 From: Dashlorde Date: Mon, 12 Mar 2018 22:54:24 -0400 Subject: [PATCH 07/13] change to use environment variable --- x86/bell/dockerfile | 3 +-- x86/bell/package.json | 26 -------------------------- x86/bell/server.js | 4 ++-- x86/docker-compose.yml | 2 ++ 4 files changed, 5 insertions(+), 30 deletions(-) delete mode 100644 x86/bell/package.json diff --git a/x86/bell/dockerfile b/x86/bell/dockerfile index 4ba30b5..b3ecf16 100644 --- a/x86/bell/dockerfile +++ b/x86/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 \ @@ -18,7 +18,6 @@ RUN 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/x86/bell/package.json b/x86/bell/package.json deleted file mode 100644 index e2a3cfd..0000000 --- a/x86/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/x86/bell/server.js b/x86/bell/server.js index 2545731..f2f1201 100644 --- a/x86/bell/server.js +++ b/x86/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,9 +14,8 @@ 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 res.end() }) diff --git a/x86/docker-compose.yml b/x86/docker-compose.yml index 11d9c85..f64f6c2 100644 --- a/x86/docker-compose.yml +++ b/x86/docker-compose.yml @@ -14,6 +14,8 @@ services: image: treehouses/bell:node-latest ports: - "80:80" + environment: + - HOST=127.0.0.1 depends_on: - couchdb version: "2" From bc8aad1927ce284c6686d4523273809bef6393b9 Mon Sep 17 00:00:00 2001 From: Dashlorde Date: Tue, 13 Mar 2018 02:00:42 -0400 Subject: [PATCH 08/13] delete useless server.js --- x86/bell/build.sh | 2 +- x86/bell/dockerfile | 6 +----- x86/bell/server.js | 23 ----------------------- x86/build-ready.sh | 2 ++ x86/build.sh | 4 ++-- x86/db-init/build.sh | 2 +- x86/docker-compose-ready.yml | 21 +++++++++++++++++++++ x86/docker-compose.yml | 6 ++---- 8 files changed, 30 insertions(+), 36 deletions(-) delete mode 100644 x86/bell/server.js create mode 100644 x86/build-ready.sh create mode 100644 x86/docker-compose-ready.yml diff --git a/x86/bell/build.sh b/x86/bell/build.sh index a147df4..446b0cf 100644 --- a/x86/bell/build.sh +++ b/x86/bell/build.sh @@ -1 +1 @@ -docker build . -t treehouses/bell:latest +docker build . -t bell:latest diff --git a/x86/bell/dockerfile b/x86/bell/dockerfile index b3ecf16..84489a3 100644 --- a/x86/bell/dockerfile +++ b/x86/bell/dockerfile @@ -15,11 +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 ./ - -RUN chmod +x ./server.js && npm install +RUN npm install EXPOSE 80 diff --git a/x86/bell/server.js b/x86/bell/server.js deleted file mode 100644 index f2f1201..0000000 --- a/x86/bell/server.js +++ /dev/null @@ -1,23 +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/x86/build-ready.sh b/x86/build-ready.sh new file mode 100644 index 0000000..052481d --- /dev/null +++ b/x86/build-ready.sh @@ -0,0 +1,2 @@ +docker build bell/. -t treehouses/bell:latest +docker build db-init/. -t treehouses/bell:db-init-latest diff --git a/x86/build.sh b/x86/build.sh index 58852c8..2c51a3d 100644 --- a/x86/build.sh +++ b/x86/build.sh @@ -1,2 +1,2 @@ -docker build bell/. -t treehouses/bell:latest -docker build db-init/. -t treehouses/bell:db-init-latest \ No newline at end of file +docker build bell/. -t bell:latest +docker build db-init/. -t bell:db-init-latest diff --git a/x86/db-init/build.sh b/x86/db-init/build.sh index 754469c..37ac629 100644 --- a/x86/db-init/build.sh +++ b/x86/db-init/build.sh @@ -1 +1 @@ -docker build . -t treehouses/bell:db-init-latest +docker build . -t bell:db-init-latest diff --git a/x86/docker-compose-ready.yml b/x86/docker-compose-ready.yml new file mode 100644 index 0000000..f64f6c2 --- /dev/null +++ b/x86/docker-compose-ready.yml @@ -0,0 +1,21 @@ +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=127.0.0.1 + depends_on: + - couchdb +version: "2" diff --git a/x86/docker-compose.yml b/x86/docker-compose.yml index f64f6c2..b6a2ead 100644 --- a/x86/docker-compose.yml +++ b/x86/docker-compose.yml @@ -7,15 +7,13 @@ services: - "2200:5984" - "2201:5986" db-init: - image: treehouses/bell:db-init-latest + image: bell:db-init-latest depends_on: - couchdb bell: - image: treehouses/bell:node-latest + image: bell:node-latest ports: - "80:80" - environment: - - HOST=127.0.0.1 depends_on: - couchdb version: "2" From 3a0959253940822275aa2082b718768ec2ef1e97 Mon Sep 17 00:00:00 2001 From: Dashlorde Date: Tue, 13 Mar 2018 02:02:28 -0400 Subject: [PATCH 09/13] update readme --- readme.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/readme.md b/readme.md index 37a46e2..34414bb 100644 --- a/readme.md +++ b/readme.md @@ -9,6 +9,8 @@ Dockerize bell app ## How to use +### Build manually + 1. Download the source code. Get into the version folder (x86 or arm for example). 2. Run command to build the image @@ -41,3 +43,20 @@ Dockerize bell app ```shell docker logs {{container_id}} ``` + +### Use the pre-build image + +1. Run command to start bell + ```shell + docker-compose -f docker-compose-ready.yml up -d + ``` + +2. Run command to stop bell + ```shell + docker-compose -f docker-compose-ready.yml stop + ``` + +3. Delete environment + ```shell + docker-compose -f docker-compose-ready.yml down + ``` \ No newline at end of file From cd78183cf0acf0d889fff3960d2118d66e175493 Mon Sep 17 00:00:00 2001 From: Dashlorde Date: Tue, 13 Mar 2018 15:28:02 -0400 Subject: [PATCH 10/13] Reduce hardcoded stuffs --- readme.md | 19 +++++++++++++++++++ x86/bell/dockerfile | 9 +++------ x86/bell/package.json | 26 -------------------------- x86/bell/server.js | 11 ++--------- x86/build-ready.sh | 2 ++ x86/build.sh | 4 ++-- x86/docker-compose-ready.yml | 21 +++++++++++++++++++++ x86/docker-compose.yml | 6 ++++-- 8 files changed, 53 insertions(+), 45 deletions(-) delete mode 100644 x86/bell/package.json create mode 100644 x86/build-ready.sh create mode 100644 x86/docker-compose-ready.yml diff --git a/readme.md b/readme.md index 37a46e2..34414bb 100644 --- a/readme.md +++ b/readme.md @@ -9,6 +9,8 @@ Dockerize bell app ## How to use +### Build manually + 1. Download the source code. Get into the version folder (x86 or arm for example). 2. Run command to build the image @@ -41,3 +43,20 @@ Dockerize bell app ```shell docker logs {{container_id}} ``` + +### Use the pre-build image + +1. Run command to start bell + ```shell + docker-compose -f docker-compose-ready.yml up -d + ``` + +2. Run command to stop bell + ```shell + docker-compose -f docker-compose-ready.yml stop + ``` + +3. Delete environment + ```shell + docker-compose -f docker-compose-ready.yml down + ``` \ No newline at end of file diff --git a/x86/bell/dockerfile b/x86/bell/dockerfile index 4ba30b5..d2bd395 100644 --- a/x86/bell/dockerfile +++ b/x86/bell/dockerfile @@ -6,19 +6,16 @@ LABEL MAINTAINER "dogi " ENV version '0.13.21' -RUN mkdir -p /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 ./ -COPY package.json ./ RUN chmod +x ./server.js && npm install diff --git a/x86/bell/package.json b/x86/bell/package.json deleted file mode 100644 index e2a3cfd..0000000 --- a/x86/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/x86/bell/server.js b/x86/bell/server.js index 2545731..5727ab7 100644 --- a/x86/bell/server.js +++ b/x86/bell/server.js @@ -3,18 +3,11 @@ 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://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 res.end() diff --git a/x86/build-ready.sh b/x86/build-ready.sh new file mode 100644 index 0000000..052481d --- /dev/null +++ b/x86/build-ready.sh @@ -0,0 +1,2 @@ +docker build bell/. -t treehouses/bell:latest +docker build db-init/. -t treehouses/bell:db-init-latest diff --git a/x86/build.sh b/x86/build.sh index 58852c8..2c51a3d 100644 --- a/x86/build.sh +++ b/x86/build.sh @@ -1,2 +1,2 @@ -docker build bell/. -t treehouses/bell:latest -docker build db-init/. -t treehouses/bell:db-init-latest \ No newline at end of file +docker build bell/. -t bell:latest +docker build db-init/. -t bell:db-init-latest diff --git a/x86/docker-compose-ready.yml b/x86/docker-compose-ready.yml new file mode 100644 index 0000000..925cc53 --- /dev/null +++ b/x86/docker-compose-ready.yml @@ -0,0 +1,21 @@ +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:latest + ports: + - "80:80" + environment: + - HOST=127.0.0.1 + depends_on: + - couchdb +version: "2" diff --git a/x86/docker-compose.yml b/x86/docker-compose.yml index 11d9c85..d8818bf 100644 --- a/x86/docker-compose.yml +++ b/x86/docker-compose.yml @@ -7,13 +7,15 @@ services: - "2200:5984" - "2201:5986" db-init: - image: treehouses/bell:db-init-latest + image: bell:db-init-latest depends_on: - couchdb bell: - image: treehouses/bell:node-latest + image: bell:latest ports: - "80:80" + environment: + - HOST=127.0.0.1 depends_on: - couchdb version: "2" From 8259c37e81a780c2ffb3b4086082e968a77ae616 Mon Sep 17 00:00:00 2001 From: Dashlorde Date: Wed, 14 Mar 2018 12:56:20 -0400 Subject: [PATCH 11/13] update to use default port 5984 --- x86/bell/dockerfile | 7 ++----- x86/bell/package.json | 26 ++++++++++++++++++++++++++ x86/bell/server.js | 2 +- x86/db-init/couchdb-setup.sh | 2 +- x86/docker-compose-ready.yml | 5 ++--- x86/docker-compose.yml | 3 +-- 6 files changed, 33 insertions(+), 12 deletions(-) create mode 100644 x86/bell/package.json diff --git a/x86/bell/dockerfile b/x86/bell/dockerfile index d2bd395..f5de9b0 100644 --- a/x86/bell/dockerfile +++ b/x86/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/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 index 5727ab7..f17c170 100644 --- a/x86/bell/server.js +++ b/x86/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/x86/db-init/couchdb-setup.sh b/x86/db-init/couchdb-setup.sh index a3636a5..da1c686 100644 --- a/x86/db-init/couchdb-setup.sh +++ b/x86/db-init/couchdb-setup.sh @@ -16,7 +16,7 @@ then fi # Default port for CouchDB accessed from host machine is 2200 -PORT=${PORT:-2200} +PORT=${PORT:-5984} if [ -z "$COUCHUSER" ] then COUCHURL=http://$HOST:$PORT diff --git a/x86/docker-compose-ready.yml b/x86/docker-compose-ready.yml index 925cc53..3774a8d 100644 --- a/x86/docker-compose-ready.yml +++ b/x86/docker-compose-ready.yml @@ -2,10 +2,9 @@ services: couchdb: expose: - 5984 - image: klaemo/couchdb ports: - - "2200:5984" - - "2201:5986" + - "5984:5984" + image: klaemo/couchdb db-init: image: treehouses/bell:db-init-latest depends_on: diff --git a/x86/docker-compose.yml b/x86/docker-compose.yml index d8818bf..7b5001f 100644 --- a/x86/docker-compose.yml +++ b/x86/docker-compose.yml @@ -4,8 +4,7 @@ services: - 5984 image: klaemo/couchdb ports: - - "2200:5984" - - "2201:5986" + - "5984:5984" db-init: image: bell:db-init-latest depends_on: From bcc923fd526acb65d018e7a7917902499c7c55eb Mon Sep 17 00:00:00 2001 From: Dashlorde Date: Wed, 14 Mar 2018 16:38:16 -0400 Subject: [PATCH 12/13] update filename --- README.md | 62 ++++++++++++++++++++++++++++++++++++++++++ x86/bell/Dockerfile | 21 ++++++++++++++ x86/db-init/Dockerfile | 24 ++++++++++++++++ 3 files changed, 107 insertions(+) create mode 100644 README.md create mode 100644 x86/bell/Dockerfile create mode 100644 x86/db-init/Dockerfile diff --git a/README.md b/README.md new file mode 100644 index 0000000..34414bb --- /dev/null +++ b/README.md @@ -0,0 +1,62 @@ +# 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 + +### Build manually + +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}} + ``` + +### Use the pre-build image + +1. Run command to start bell + ```shell + docker-compose -f docker-compose-ready.yml up -d + ``` + +2. Run command to stop bell + ```shell + docker-compose -f docker-compose-ready.yml stop + ``` + +3. Delete environment + ```shell + docker-compose -f docker-compose-ready.yml down + ``` \ No newline at end of file diff --git a/x86/bell/Dockerfile b/x86/bell/Dockerfile new file mode 100644 index 0000000..f5de9b0 --- /dev/null +++ b/x86/bell/Dockerfile @@ -0,0 +1,21 @@ +FROM node:6.11-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/x86/db-init/Dockerfile b/x86/db-init/Dockerfile new file mode 100644 index 0000000..ccebade --- /dev/null +++ b/x86/db-init/Dockerfile @@ -0,0 +1,24 @@ +FROM node:6.11-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 && \ + #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 From d5654e7fd97c1e7f546d413411273cf115e8bf13 Mon Sep 17 00:00:00 2001 From: Yunlu Zhou Date: Wed, 14 Mar 2018 16:40:34 -0400 Subject: [PATCH 13/13] Delete readme.md --- readme.md | 62 ------------------------------------------------------- 1 file changed, 62 deletions(-) delete mode 100644 readme.md diff --git a/readme.md b/readme.md deleted file mode 100644 index 34414bb..0000000 --- a/readme.md +++ /dev/null @@ -1,62 +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 - -### Build manually - -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}} - ``` - -### Use the pre-build image - -1. Run command to start bell - ```shell - docker-compose -f docker-compose-ready.yml up -d - ``` - -2. Run command to stop bell - ```shell - docker-compose -f docker-compose-ready.yml stop - ``` - -3. Delete environment - ```shell - docker-compose -f docker-compose-ready.yml down - ``` \ No newline at end of file