fivem-docker-cli
Version:
Command-line tool to create and administer FiveM Servers running in Docker.
48 lines (39 loc) • 1.18 kB
JavaScript
const Docker = require("dockerode");
const docker = new Docker({ socketPath: "/var/run/docker.sock" });
const getPorts = container => {
// Create Promise
return new Promise((resolve, reject) => {
// Gets the container information
docker.getContainer(container.Id).inspect((err, data) => {
let bindings = [];
const ports = [];
let bindingsLength = 0;
let error;
bindings = data.HostConfig.PortBindings;
// Builds content for ports column on status table
if (bindings) {
for (let i in bindings) {
ports.push({
Type: i.slice(i.indexOf("/") + 1),
External: bindings[i][0].HostPort,
Internal: i.slice(0, i.indexOf("/"))
});
bindingsLength = bindingsLength + 1;
}
}
// Check for completion and returns the ports.
if (ports.length === bindingsLength) {
resolve(ports);
}
if (error) {
reject(error);
}
if (err) {
error = err;
}
});
// resolve();
})
.catch((err) => reject(err));
};
module.exports = { getPorts };