I have created a docker_event_notifier.js where I require ‘dockerode’ and ‘docker-events’, by this I can get start and connect event but not receiving ‘_message’ or ‘event’. I am using docker compose up -d to run container.
Here is the code:
const Docker = require('dockerode');
const DockerEvents = require('docker-events');
const docker = new Docker({ socketPath: '/var/run/docker.sock' });
const emitter = new DockerEvents({ docker: docker, });
// Debug connection status
emitter.on('connect', () => {
console.log('Connected to Docker events stream.');
});
emitter.on('disconnect', () => {
console.log('Disconnected from Docker events stream.');
});
emitter.on('event', (event) => {
console.log('Received Docker Event:', event);
});
emitter.on("_message", function(message) {
console.log("got a message from docker: %j", message);
});
try {
emitter.start();
console.log('Started listening for Docker events...');
} catch (err) {
console.error('Error starting Docker events emitter:', err);
}
How can I get the event?
I tried using
stream.on('data', (chunk) => { console.log("Going here"); try { const event = JSON.parse(chunk.toString()); console.log('Event:', event); } catch (parseErr) { console.log('Failed to parse event:', parseErr); } });
But no luck
ls -l /var/run/docker.sock
srw-rw-rw- 1 root docker 0 Dec 25 16:50 /var/run/docker.sock