Added docker compose file
This commit is contained in:
7
Dockerfile
Normal file
7
Dockerfile
Normal file
@@ -0,0 +1,7 @@
|
||||
# LSP Dockerfile
|
||||
FROM node
|
||||
WORKDIR /app
|
||||
COPY package.json /app
|
||||
RUN npm install
|
||||
COPY . /app
|
||||
CMD ["node", "app.js"]
|
||||
@@ -4,7 +4,18 @@ const models = require('../models')
|
||||
const mongodb_hostname = process.env.MONGODB_HOST || '0.0.0.0';
|
||||
const mongodb_port = process.env.MONGODB_PORT || 27017;
|
||||
const mongodb_database = process.env.MONGODB_DATABASE || 'lsp';
|
||||
const mongodb_url = 'mongodb://' + mongodb_hostname + ':' + mongodb_port;
|
||||
const mongodb_user = process.env.MONGODB_USER;
|
||||
const mongodb_pass = process.env.MONGODB_PASSWORD;
|
||||
|
||||
// Build the MongoDB URI based on whether authentication is provided
|
||||
let mongodb_url;
|
||||
if (mongodb_user && mongodb_pass) {
|
||||
// Authenticated connection
|
||||
mongodb_url = `mongodb://${mongodb_user}:${mongodb_pass}@${mongodb_hostname}:${mongodb_port}`;
|
||||
} else {
|
||||
// No authentication
|
||||
mongodb_url = `mongodb://${mongodb_hostname}:${mongodb_port}`;
|
||||
}
|
||||
|
||||
const client = new MongoClient(mongodb_url, { useUnifiedTopology: true });
|
||||
|
||||
@@ -21,13 +32,8 @@ var days = function(date) {
|
||||
}
|
||||
|
||||
var init = async function () {
|
||||
await client.connect(function (err) {
|
||||
if (err) {
|
||||
console.log('MongoDB Client error');
|
||||
console.log(err);
|
||||
return { error: "Error connecting to DB: " + err }
|
||||
|
||||
} else {
|
||||
try {
|
||||
await client.connect();
|
||||
_db = client.db(mongodb_database);
|
||||
_devices = _db.collection('devices');
|
||||
_data = _db.collection('data');
|
||||
@@ -35,19 +41,16 @@ var init = async function () {
|
||||
_events = _db.collection('events');
|
||||
_alerts = _db.collection('alerts');
|
||||
|
||||
console.log('MongoDB Client connected');
|
||||
////////////////////////////
|
||||
// FLUSH DB BY UNCOMMENTING
|
||||
// _devices.deleteMany(function(err, objects){});
|
||||
// _data.deleteMany(function(err, objects){});
|
||||
// _ipx_data.deleteMany(function(err, objects){});
|
||||
// _events.deleteMany(function(err, objects){});
|
||||
// _alerts.deleteMany(function(err, objects){});
|
||||
|
||||
return null;
|
||||
if (mongodb_user && mongodb_pass) {
|
||||
console.log('MongoDB Client connected with authentication');
|
||||
} else {
|
||||
console.log('MongoDB Client connected without authentication');
|
||||
}
|
||||
});
|
||||
} catch (err) {
|
||||
console.error('MongoDB Client error:', err);
|
||||
return { error: "Error connecting to DB: " + err };
|
||||
}
|
||||
};
|
||||
|
||||
var addData = async function (relay, device, element) {
|
||||
try {
|
||||
|
||||
28
docker-compose.yaml
Normal file
28
docker-compose.yaml
Normal file
@@ -0,0 +1,28 @@
|
||||
version: '3' # docker-compose version
|
||||
services: # services which our app going to use. (list of containers we want to create)
|
||||
mongodb: # container name
|
||||
image: mongo # which image container will build on
|
||||
ports:
|
||||
- "27017:27017"
|
||||
networks: # adding network
|
||||
- lsp-network
|
||||
volumes:
|
||||
- mongo-data:/data/db
|
||||
|
||||
lsp:
|
||||
build: . # build the Docker image for the service using the Dockerfile located in the current directory
|
||||
ports:
|
||||
- "4443:443"
|
||||
- "8080:80"
|
||||
networks: # adding network
|
||||
- lsp-network
|
||||
depends_on:
|
||||
- mongodb
|
||||
|
||||
networks: # allow services to talk to each other while providing isolation from other docker container, running on the same host
|
||||
lsp-network:
|
||||
driver: bridge
|
||||
|
||||
volumes: # enable persistence of database data across container restart
|
||||
mongo-data:
|
||||
driver: local
|
||||
Reference in New Issue
Block a user