@ -13,7 +13,8 @@ export default async function handler(req, res) {
}
try {
const docker = new Docker ( getDockerArguments ( containerServer ) ) ;
const dockerArgs = getDockerArguments ( containerServer ) ;
const docker = new Docker ( dockerArgs . conn ) ;
const containers = await docker . listContainers ( {
all : true ,
} ) ;
@ -35,30 +36,33 @@ export default async function handler(req, res) {
return res . status ( 200 ) . json ( {
status : info . State . Status ,
health : info . State . Health ? . Status
health : info . State . Health ? . Status ,
} ) ;
}
const tasks = await docker . listTasks ( {
filters : {
service : [ containerName ] ,
// A service can have several offline containers, we only look for an active one.
'desired-state' : [ 'running' ]
}
} ) . catch ( ( ) => [ ] ) ;
if ( dockerArgs . swarm ) {
const tasks = await docker . listTasks ( {
filters : {
service : [ containerName ] ,
// A service can have several offline containers, we only look for an active one.
"desired-state" : [ "running" ] ,
} ,
} )
. catch ( ( ) => [ ] ) ;
// For now we are only interested in the first one (in case replicas > 1).
// TODO: Show the result for all replicas/containers?
const taskContainerId = tasks . at ( 0 ) ? . Status ? . ContainerStatus ? . ContainerID
// For now we are only interested in the first one (in case replicas > 1).
// TODO: Show the result for all replicas/containers?
const taskContainerId = tasks . at ( 0 ) ? . Status ? . ContainerStatus ? . ContainerID ;
if ( taskContainerId ) {
const container = docker . getContainer ( taskContainerId ) ;
const info = await container . inspect ( ) ;
if ( taskContainerId ) {
const container = docker . getContainer ( taskContainerId ) ;
const info = await container . inspect ( ) ;
return res . status ( 200 ) . json ( {
status : info . State . Status ,
health : info . State . Health ? . Status
} ) ;
return res . status ( 200 ) . json ( {
status : info . State . Status ,
health : info . State . Health ? . Status ,
} ) ;
}
}
return res . status ( 200 ) . send ( {