Skip to content
This repository has been archived by the owner on Oct 30, 2018. It is now read-only.

Commit

Permalink
wip - docker compose
Browse files Browse the repository at this point in the history
  • Loading branch information
niahmiah committed Jul 7, 2016
1 parent 974c982 commit 0c14da9
Show file tree
Hide file tree
Showing 15 changed files with 222 additions and 5 deletions.
4 changes: 4 additions & 0 deletions .dockerignore
@@ -0,0 +1,4 @@
node_modules
coverage
.git
test/integration/data/*
18 changes: 18 additions & 0 deletions Dockerfile
@@ -0,0 +1,18 @@
FROM node:4.4
MAINTAINER Ian Patton <ian.patton@gmail.com>

RUN useradd -m -s /bin/bash node
RUN mkdir -p /usr/src/app
RUN chown -R node /usr/src/app

USER node
WORKDIR /usr/src/app

COPY package.json /usr/src/app/
RUN npm install

COPY . /usr/src/app/

EXPOSE 6382

CMD [ "npm", "start" ]
56 changes: 56 additions & 0 deletions docker-compose.yml
@@ -0,0 +1,56 @@
mongo:
image: mongo:3.2
expose:
- "27017"
command: mongod --smallfiles
rabbit:
image: rabbitmq:3.6
expose:
- "5672"
farmer1:
build: https://github.com/Storj/storjshare-cli.git#dockerize
command: bin/storjshare.js start
expose:
- "4000"
volumes:
- ./test/integration/configs/farmer1:/home/node/.storjshare
- ./test/integration/data/farmer1:/data
farmer2:
build: https://github.com/Storj/storjshare-cli.git#dockerize
command: bin/storjshare.js start
expose:
- "4000"
volumes:
- ./test/integration/configs/farmer2:/home/node/.storjshare
- ./test/integration/data/farmer2:/data
farmer3:
build: https://github.com/Storj/storjshare-cli.git#dockerize
command: bin/storjshare.js start
expose:
- "4000"
volumes:
- ./test/integration/configs/farmer3:/home/node/.storjshare
- ./test/integration/data/farmer3:/data
farmer4:
build: https://github.com/Storj/storjshare-cli.git#dockerize
command: bin/storjshare.js start
expose:
- "4000"
volumes:
- ./test/integration/configs/farmer4:/home/node/.storjshare
- ./test/integration/data/farmer4:/data
bridge:
build: .
command: bash -c 'sleep 5 && ./node_modules/.bin/_mocha test/**/*.integration.js'
environment:
NODE_ENV: integration
STORJ_ALLOW_LOOPBACK: 1
links:
- mongo
- rabbit
- farmer1
- farmer2
- farmer3
- farmer4
volumes:
- .:/output
9 changes: 6 additions & 3 deletions lib/config.js
Expand Up @@ -59,9 +59,12 @@ function Config(env) {
}
}

const defaultDBHostname = process.env.MONGO_PORT_27017_TCP_ADDR || 'localhost';
const defaultMessagingHostname = process.env.RABBIT_PORT_5672_TCP_ADDR || 'localhost';

Config.DEFAULTS = {
storage: {
host: '127.0.0.1',
host: defaultDBHostname,
port: 27017,
name: '__storj-bridge-test',
user: null,
Expand All @@ -70,7 +73,7 @@ Config.DEFAULTS = {
ssl: false
},
messaging: {
url: 'amqp://localhost',
url: `amqp://${defaultMessagingHostname}`,
queues: {
renterpool: { // a shared work queue
name: 'storj.work.renterpool',
Expand All @@ -83,7 +86,7 @@ Config.DEFAULTS = {
}
},
callback: { // each process gets a unique callback queue, to use in replyTo
name: '', // dynamically generated
name: '', // LEAVE EMPTY, dynamically generated
options: {
exclusive: true,
durable: false
Expand Down
10 changes: 9 additions & 1 deletion lib/logger.js
Expand Up @@ -3,7 +3,15 @@
const Logger = require('kad-logger-json');

module.exports = (function() {
let level = process.env.NODE_ENV === 'test' ? 0 : 3;
let level = 3;
switch(process.env.NODE_ENV) {
case 'test':
level = 0;
break;
case 'integration':
level = 4;
break;
}
let logger = Logger(level);

if (level) {
Expand Down
2 changes: 1 addition & 1 deletion package.json
Expand Up @@ -11,7 +11,7 @@
"storj-bridge": "bin/storj-bridge.js"
},
"scripts": {
"testsuite": "STORJ_ALLOW_LOOPBACK=1 NODE_ENV=test _mocha test/**",
"testsuite": "STORJ_ALLOW_LOOPBACK=1 NODE_ENV=test _mocha test/**/*.unit.js",
"coverage": "STORJ_ALLOW_LOOPBACK=1 NODE_ENV=test ./node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha -- --recursive",
"linter": "./node_modules/.bin/jshint --config .jshintrc ./index.js ./lib ./test",
"test": "npm run testsuite && npm run linter",
Expand Down
31 changes: 31 additions & 0 deletions test/integration/configs/farmer1/config.json
@@ -0,0 +1,31 @@
{
"keypath": "./config/id_ecdsa",
"address": "",
"storage": {
"path": "./data",
"size": 1,
"unit": "GB"
},
"network": {
"address": "127.0.0.1",
"port": 4000,
"seeds": [],
"opcodes": [
"0f01020202",
"0f02020202",
"0f03020202"
],
"forward": false,
"tunnels": 3,
"tunnelport": 4001,
"gateways": {
"min": 0,
"max": 0
}
},
"telemetry": {
"service": "https://status.storj.io",
"enabled": false
},
"loglevel": 4
}
1 change: 1 addition & 0 deletions test/integration/configs/farmer1/id_ecdsa
@@ -0,0 +1 @@
2KzNQi7sfbYZBZW9sVHvRnqiFAn9THcC1QCzA2gbw6HZ7CRzbH6PG5Vb3Z7WMumm3kMgBMkyjVXsEu6ZhSawXqwHV8WYeMXFmuC8GjQu2koSep
31 changes: 31 additions & 0 deletions test/integration/configs/farmer2/config.json
@@ -0,0 +1,31 @@
{
"keypath": "./config/id_ecdsa",
"address": "",
"storage": {
"path": "./data",
"size": 1,
"unit": "GB"
},
"network": {
"address": "127.0.0.1",
"port": 4000,
"seeds": [],
"opcodes": [
"0f01020202",
"0f02020202",
"0f03020202"
],
"forward": false,
"tunnels": 3,
"tunnelport": 4001,
"gateways": {
"min": 0,
"max": 0
}
},
"telemetry": {
"service": "https://status.storj.io",
"enabled": false
},
"loglevel": 4
}
1 change: 1 addition & 0 deletions test/integration/configs/farmer2/id_ecdsa
@@ -0,0 +1 @@
CoXhpq2vyGxTpEEqgTApGveJVj5RPpqvtVhEJ714igq6UuR5fzzpZb8PscwC2YwRsynbVSyGWDRejxETAdozwdn8R3QXCrZV6c4UieFrKVZTA
31 changes: 31 additions & 0 deletions test/integration/configs/farmer3/config.json
@@ -0,0 +1,31 @@
{
"keypath": "./config/id_ecdsa",
"address": "",
"storage": {
"path": "./data",
"size": 1,
"unit": "GB"
},
"network": {
"address": "127.0.0.1",
"port": 4000,
"seeds": [],
"opcodes": [
"0f01020202",
"0f02020202",
"0f03020202"
],
"forward": false,
"tunnels": 3,
"tunnelport": 4001,
"gateways": {
"min": 0,
"max": 0
}
},
"telemetry": {
"service": "https://status.storj.io",
"enabled": false
},
"loglevel": 4
}
1 change: 1 addition & 0 deletions test/integration/configs/farmer3/id_ecdsa
@@ -0,0 +1 @@
36DVqih1D3XSHBkq9C8T84FVHuz35uZs81GP98woX3QmTAZ1q3gDeWXw1okfQ64TWF6ah2VoWMknmPobR16RCNGMC3YGxfEgboYqmrgoTUkN9f
31 changes: 31 additions & 0 deletions test/integration/configs/farmer4/config.json
@@ -0,0 +1,31 @@
{
"keypath": "./config/id_ecdsa",
"address": "",
"storage": {
"path": "./data",
"size": 1,
"unit": "GB"
},
"network": {
"address": "127.0.0.1",
"port": 4000,
"seeds": [],
"opcodes": [
"0f01020202",
"0f02020202",
"0f03020202"
],
"forward": false,
"tunnels": 3,
"tunnelport": 4001,
"gateways": {
"min": 0,
"max": 0
}
},
"telemetry": {
"service": "https://status.storj.io",
"enabled": false
},
"loglevel": 4
}
1 change: 1 addition & 0 deletions test/integration/configs/farmer4/id_ecdsa
@@ -0,0 +1 @@
3eef4fXq7DPc8yEEyNw7KDDWtsimHHbaWbobmWQkGAxruuctE68mgd9DpGnFHto25HYYgVWSnBftjUzZHVUvqHPrxLRVJ55x5Z9oEu7PspSR5D
Empty file added test/integration/data/.gitkeep
Empty file.

0 comments on commit 0c14da9

Please sign in to comment.