Browse Source

task done! now getting it better

master
Yutsuo 7 years ago
parent
commit
c07a509d80
  1. 5
      docker-compose.yml
  2. 5
      mongo/Dockerfile
  3. 8
      mongo/db-user-setup.js
  4. 10
      mongo/db-user-setup.sh
  5. 5
      node/Dockerfile
  6. 7
      node/app.js
  7. 14
      node/check-env.sh

5
docker-compose.yml

@ -7,6 +7,9 @@ services:
restart: always
build: ./node
image: custom/node
environment:
mongousr: myTester
mongopwd: test
ports:
- '3001:3001'
links:
@ -18,6 +21,8 @@ services:
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: ruth
mongousr: myTester
mongopwd: test
ports:
- 27017:27017
prometheus:

5
mongo/Dockerfile

@ -1,5 +1,8 @@
FROM mongo
COPY dbusersetup.js /docker-entrypoint-initdb.d
COPY db-user-setup.sh /docker-entrypoint-initdb.d
# ENV mongousr=myTester
# ENV mongopwd=test
EXPOSE 27017

8
mongo/dbusersetup.js → mongo/db-user-setup.js

@ -1,10 +1,8 @@
// create test user
use test
db.createUser(
{
user: "myTester",
pwd: "test",
user: "$mongousr",
pwd: "$mongopwd",
roles: [ { role: "readWrite", db: "test" },
{ role: "read", db: "reporting" } ]
}
)
);

10
mongo/db-user-setup.sh

@ -0,0 +1,10 @@
set -e
mongo <<EOF
db.createUser({
user: '$mongousr',
pwd: '$mongopwd',
roles: [ { role: "readWrite", db: "test" },
{ role: "read", db: "reporting" } ]
})
EOF

5
node/Dockerfile

@ -14,6 +14,11 @@ COPY package.json /app
RUN npm install
COPY . /app
# ENV mongousr=myTester
# ENV mongopwd=test
RUN sh check-env.sh
CMD node app.js
EXPOSE 3001

7
node/app.js

@ -2,7 +2,7 @@ var express = require('express');
var app = express();
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var database = 'mongodb://root:ruth@mongo:27017/admin';
var database = 'mongodb://' + process.env.mongousr + ':' + process.env.mongopwd + '@mongo:27017/test';
var today = new Date();
var counter = 0;
var Prometheus = require("prom-client");
@ -17,6 +17,8 @@ const libUptime = new Prometheus.Counter({
help: 'uptime A counter of the application\'s uptime in seconds.'
})
console.log('mongousr: ', process.env.mongousr);
console.log('mongopwd: ', process.env.mongopwd);
// const collectDefaultMetrics = Prometheus.collectDefaultMetrics;
// Probe every 5th second.
@ -53,6 +55,9 @@ app.get('/metrics', function(req, res){
libUptime.reset();
});
app.get('/env', function(req, res){
});
app.get('/', (req, res)=>{

14
node/check-env.sh

@ -0,0 +1,14 @@
if [ -z "$mongousr" ]
then
echo "\$mongousr is empty"
exit 1
else
echo "\$mongousr is NOT empty"
if [ -z "$mongopwd" ]
then
echo "\$mongopwd is empty"
exit 1
else
echo "\$mongopwd is NOT empty"
fi
fi
Loading…
Cancel
Save