UNPKG

@apiclient.xyz/docker

Version:

Provides easy communication with Docker remote API from Node.js, with TypeScript support.

55 lines 4.13 kB
import * as plugins from './plugins.js'; import * as interfaces from './interfaces/index.js'; import { DockerHost } from './classes.host.js'; import { logger } from './logger.js'; export class DockerContainer { // STATIC /** * get all containers */ static async getContainers(dockerHostArg) { const result = []; const response = await dockerHostArg.request('GET', '/containers/json'); // TODO: Think about getting the config by inpsecting the container for (const containerResult of response.body) { result.push(new DockerContainer(dockerHostArg, containerResult)); } return result; } /** * gets an container by Id * @param containerId */ static async getContainerById(containerId) { // TODO: implement get container by id } /** * create a container */ static async create(dockerHost, containerCreationDescriptor) { // check for unique hostname const existingContainers = await DockerContainer.getContainers(dockerHost); const sameHostNameContainer = existingContainers.find((container) => { // TODO implement HostName Detection; return false; }); const response = await dockerHost.request('POST', '/containers/create', { Hostname: containerCreationDescriptor.Hostname, Domainname: containerCreationDescriptor.Domainname, User: 'root', }); if (response.statusCode < 300) { logger.log('info', 'Container created successfully'); } else { logger.log('error', 'There has been a problem when creating the container'); } } constructor(dockerHostArg, dockerContainerObjectArg) { this.dockerHost = dockerHostArg; Object.keys(dockerContainerObjectArg).forEach((keyArg) => { this[keyArg] = dockerContainerObjectArg[keyArg]; }); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5jb250YWluZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9jbGFzc2VzLmNvbnRhaW5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEtBQUssVUFBVSxNQUFNLHVCQUF1QixDQUFDO0FBRXBELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXJDLE1BQU0sT0FBTyxlQUFlO0lBQzFCLFNBQVM7SUFFVDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLGFBQXlCO1FBQ3pELE1BQU0sTUFBTSxHQUFzQixFQUFFLENBQUM7UUFDckMsTUFBTSxRQUFRLEdBQUcsTUFBTSxhQUFhLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBRXhFLG1FQUFtRTtRQUNuRSxLQUFLLE1BQU0sZUFBZSxJQUFJLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM1QyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksZUFBZSxDQUFDLGFBQWEsRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDO1FBQ25FLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFtQjtRQUN0RCxzQ0FBc0M7SUFDeEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQ3hCLFVBQXNCLEVBQ3RCLDJCQUFvRTtRQUVwRSw0QkFBNEI7UUFDNUIsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLGVBQWUsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDM0UsTUFBTSxxQkFBcUIsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNsRSxxQ0FBcUM7WUFDckMsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sUUFBUSxHQUFHLE1BQU0sVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsb0JBQW9CLEVBQUU7WUFDdEUsUUFBUSxFQUFFLDJCQUEyQixDQUFDLFFBQVE7WUFDOUMsVUFBVSxFQUFFLDJCQUEyQixDQUFDLFVBQVU7WUFDbEQsSUFBSSxFQUFFLE1BQU07U0FDYixDQUFDLENBQUM7UUFDSCxJQUFJLFFBQVEsQ0FBQyxVQUFVLEdBQUcsR0FBRyxFQUFFLENBQUM7WUFDOUIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsZ0NBQWdDLENBQUMsQ0FBQztRQUN2RCxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLHNEQUFzRCxDQUFDLENBQUM7UUFDOUUsQ0FBQztJQUNILENBQUM7SUFzQ0QsWUFBWSxhQUF5QixFQUFFLHdCQUE2QjtRQUNsRSxJQUFJLENBQUMsVUFBVSxHQUFHLGFBQWEsQ0FBQztRQUNoQyxNQUFNLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDdkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIn0=