Compare commits

...

8 Commits

Author SHA1 Message Date
3a4f59ef9e 1.0.95 2020-09-30 16:27:43 +00:00
90eac3e50a fix(core): update 2020-09-30 16:27:43 +00:00
edec48529d 1.0.94 2020-03-23 00:17:15 +00:00
e622b97097 fix(core): update 2020-03-23 00:17:15 +00:00
23266ca459 1.0.93 2020-03-23 00:01:46 +00:00
a91e69b6db fix(core): update 2020-03-23 00:01:45 +00:00
015ccfad48 1.0.92 2020-03-22 23:53:32 +00:00
06d2fcb750 fix(core): update 2020-03-22 23:53:31 +00:00
15 changed files with 10084 additions and 921 deletions

4
.gitignore vendored
View File

@ -15,8 +15,6 @@ node_modules/
# builds # builds
dist/ dist/
dist_web/ dist_*/
dist_serve/
dist_ts_web/
# custom # custom

View File

@ -24,13 +24,14 @@ mirror:
- docker - docker
- notpriv - notpriv
snyk: audit:
image: registry.gitlab.com/hosttoday/ht-docker-node:snyk image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
stage: security stage: security
script: script:
- npmci npm prepare - npmci npm prepare
- npmci command npm install --ignore-scripts - npmci command npm install --ignore-scripts
- npmci command snyk test - npmci command npm config set registry https://registry.npmjs.org
- npmci command npm audit --audit-level=high
tags: tags:
- lossless - lossless
- docker - docker

26
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,26 @@
{
"json.schemas": [
{
"fileMatch": ["/npmextra.json"],
"schema": {
"type": "object",
"properties": {
"npmci": {
"type": "object",
"description": "settings for npmci"
},
"gitzone": {
"type": "object",
"description": "settings for gitzone",
"properties": {
"projectType": {
"type": "string",
"enum": ["website", "element", "service", "npm"]
}
}
}
}
}
}
]
}

View File

@ -10,6 +10,7 @@
"npmRegistryUrl": "registry.npmjs.org" "npmRegistryUrl": "registry.npmjs.org"
}, },
"gitzone": { "gitzone": {
"projectType": "npm",
"module": { "module": {
"githost": "gitlab.com", "githost": "gitlab.com",
"gitscope": "mojoio", "gitscope": "mojoio",

10872
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,10 +1,10 @@
{ {
"name": "@mojoio/docker", "name": "@mojoio/docker",
"version": "1.0.91", "version": "1.0.95",
"description": "easy communication with docker remote api from node, TypeScript ready", "description": "easy communication with docker remote api from node, TypeScript ready",
"private": false, "private": false,
"main": "dist/index.js", "main": "dist_ts/index.js",
"typings": "dist/index.d.ts", "typings": "dist_ts/index.d.ts",
"scripts": { "scripts": {
"test": "tstest test/", "test": "tstest test/",
"build": "tsbuild" "build": "tsbuild"
@ -27,32 +27,34 @@
}, },
"homepage": "https://gitlab.com/pushrocks/dockersock#README", "homepage": "https://gitlab.com/pushrocks/dockersock#README",
"dependencies": { "dependencies": {
"@pushrocks/lik": "^3.0.11", "@pushrocks/lik": "^4.0.17",
"@pushrocks/smartfile": "^7.0.6", "@pushrocks/smartfile": "^8.0.0",
"@pushrocks/smartjson": "^3.0.8", "@pushrocks/smartjson": "^3.0.10",
"@pushrocks/smartlog": "^2.0.21", "@pushrocks/smartlog": "^2.0.39",
"@pushrocks/smartnetwork": "^1.1.16", "@pushrocks/smartnetwork": "^1.1.22",
"@pushrocks/smartpath": "^4.0.1", "@pushrocks/smartpath": "^4.0.3",
"@pushrocks/smartpromise": "^3.0.6", "@pushrocks/smartpromise": "^3.0.6",
"@pushrocks/smartrequest": "^1.1.42", "@pushrocks/smartrequest": "^1.1.51",
"@pushrocks/smartstring": "^3.0.14", "@pushrocks/smartstring": "^3.0.18",
"@pushrocks/smartversion": "^2.0.4", "@pushrocks/smartversion": "^2.0.4",
"rxjs": "^6.5.3" "@tsclass/tsclass": "^3.0.25",
"rxjs": "^6.6.3"
}, },
"devDependencies": { "devDependencies": {
"@gitzone/tsbuild": "^2.1.17", "@gitzone/tsbuild": "^2.1.25",
"@gitzone/tsrun": "^1.2.8", "@gitzone/tsrun": "^1.2.12",
"@gitzone/tstest": "^1.0.28", "@gitzone/tstest": "^1.0.48",
"@pushrocks/tapbundle": "^3.2.0", "@pushrocks/tapbundle": "^3.2.9",
"@types/node": "^12.12.11", "@types/node": "^14.11.2",
"tslint": "^5.20.1", "tslint": "^6.1.3",
"tslint-config-prettier": "^1.18.0" "tslint-config-prettier": "^1.18.0"
}, },
"files": [ "files": [
"ts/**/*", "ts/**/*",
"ts_web/**/*", "ts_web/**/*",
"dist/**/*", "dist/**/*",
"dist_web/**/*", "dist_*/**/*",
"dist_ts/**/*",
"dist_ts_web/**/*", "dist_ts_web/**/*",
"assets/**/*", "assets/**/*",
"cli.js", "cli.js",

View File

@ -8,7 +8,7 @@ unofficial docker engine api abstraction package written in TypeScript
* [docs (typedoc)](https://mojoio.gitlab.io/docker/) * [docs (typedoc)](https://mojoio.gitlab.io/docker/)
## Status for master ## Status for master
[![build status](https://gitlab.com/mojoio/docker/badges/master/build.svg)](https://gitlab.com/mojoio/docker/commits/master) [![pipeline status](https://gitlab.com/mojoio/docker/badges/master/pipeline.svg)](https://gitlab.com/mojoio/docker/commits/master)
[![coverage report](https://gitlab.com/mojoio/docker/badges/master/coverage.svg)](https://gitlab.com/mojoio/docker/commits/master) [![coverage report](https://gitlab.com/mojoio/docker/badges/master/coverage.svg)](https://gitlab.com/mojoio/docker/commits/master)
[![npm downloads per month](https://img.shields.io/npm/dm/@mojoio/docker.svg)](https://www.npmjs.com/package/@mojoio/docker) [![npm downloads per month](https://img.shields.io/npm/dm/@mojoio/docker.svg)](https://www.npmjs.com/package/@mojoio/docker)
[![Known Vulnerabilities](https://snyk.io/test/npm/@mojoio/docker/badge.svg)](https://snyk.io/test/npm/@mojoio/docker) [![Known Vulnerabilities](https://snyk.io/test/npm/@mojoio/docker/badge.svg)](https://snyk.io/test/npm/@mojoio/docker)
@ -30,7 +30,6 @@ const run = async () => {
}; };
``` ```
## Contribution ## Contribution
We are always happy for code contributions. If you are not the code contributing type that is ok. Still, maintaining Open Source repositories takes considerable time and thought. If you like the quality of what we do and our modules are useful to you we would appreciate a little monthly contribution: You can [contribute one time](https://lossless.link/contribute-onetime) or [contribute monthly](https://lossless.link/contribute). :) We are always happy for code contributions. If you are not the code contributing type that is ok. Still, maintaining Open Source repositories takes considerable time and thought. If you like the quality of what we do and our modules are useful to you we would appreciate a little monthly contribution: You can [contribute one time](https://lossless.link/contribute-onetime) or [contribute monthly](https://lossless.link/contribute). :)

View File

@ -2,6 +2,7 @@ import * as plugins from './docker.plugins';
import * as interfaces from './interfaces'; import * as interfaces from './interfaces';
import { DockerHost } from './docker.classes.host'; import { DockerHost } from './docker.classes.host';
import { logger } from './docker.logging';
export class DockerContainer { export class DockerContainer {
// STATIC // STATIC
@ -47,9 +48,9 @@ export class DockerContainer {
User: 'root' User: 'root'
}); });
if (response.statusCode < 300) { if (response.statusCode < 300) {
plugins.smartlog.defaultLogger.log('info', 'Container created successfully'); logger.log('info', 'Container created successfully');
} else { } else {
plugins.smartlog.defaultLogger.log( logger.log(
'error', 'error',
'There has been a problem when creating the container' 'There has been a problem when creating the container'
); );

View File

@ -2,6 +2,7 @@ import * as plugins from './docker.plugins';
import { DockerContainer } from './docker.classes.container'; import { DockerContainer } from './docker.classes.container';
import { DockerNetwork } from './docker.classes.network'; import { DockerNetwork } from './docker.classes.network';
import { DockerService } from './docker.classes.service'; import { DockerService } from './docker.classes.service';
import { logger } from './docker.logging';
export interface IAuthData { export interface IAuthData {
serveraddress: string; serveraddress: string;
@ -138,9 +139,9 @@ export class DockerHost {
ForceNewCluster: false ForceNewCluster: false
}); });
if (response.statusCode === 200) { if (response.statusCode === 200) {
plugins.smartlog.defaultLogger.log('info', 'created Swam succesfully'); logger.log('info', 'created Swam succesfully');
} else { } else {
plugins.smartlog.defaultLogger.log('error', 'could not initiate swarm'); logger.log('error', 'could not initiate swarm');
} }
} }

View File

@ -1,6 +1,7 @@
import * as plugins from './docker.plugins'; import * as plugins from './docker.plugins';
import * as interfaces from './interfaces'; import * as interfaces from './interfaces';
import { DockerHost } from './docker.classes.host'; import { DockerHost } from './docker.classes.host';
import { logger } from './docker.logging';
export class DockerImage { export class DockerImage {
// STATIC // STATIC
@ -63,14 +64,14 @@ export class DockerImage {
)}&tag=${encodeURIComponent(imageUrlObject.imageTag)}` )}&tag=${encodeURIComponent(imageUrlObject.imageTag)}`
); );
if (response.statusCode < 300) { if (response.statusCode < 300) {
plugins.smartlog.defaultLogger.log( logger.log(
'info', 'info',
`Successfully pulled image ${imageUrlObject.imageUrl} from the registry` `Successfully pulled image ${imageUrlObject.imageUrl} from the registry`
); );
const image = await DockerImage.findImageByName(dockerHostArg, imageUrlObject.imageOriginTag); const image = await DockerImage.findImageByName(dockerHostArg, imageUrlObject.imageOriginTag);
return image; return image;
} else { } else {
plugins.smartlog.defaultLogger.log('error', `Failed at the attempt of creating a new image`); logger.log('error', `Failed at the attempt of creating a new image`);
} }
} }

View File

@ -3,6 +3,7 @@ import * as interfaces from './interfaces';
import { DockerHost } from './docker.classes.host'; import { DockerHost } from './docker.classes.host';
import { DockerService } from './docker.classes.service'; import { DockerService } from './docker.classes.service';
import { logger } from './docker.logging';
export class DockerNetwork { export class DockerNetwork {
public static async getNetworks(dockerHost: DockerHost): Promise<DockerNetwork[]> { public static async getNetworks(dockerHost: DockerHost): Promise<DockerNetwork[]> {
@ -45,10 +46,10 @@ export class DockerNetwork {
Ingress: false Ingress: false
}); });
if (response.statusCode < 300) { if (response.statusCode < 300) {
plugins.smartlog.defaultLogger.log('info', 'Created network successfully'); logger.log('info', 'Created network successfully');
return await DockerNetwork.getNetworkByName(dockerHost, networkCreationDescriptor.Name); return await DockerNetwork.getNetworkByName(dockerHost, networkCreationDescriptor.Name);
} else { } else {
plugins.smartlog.defaultLogger.log( logger.log(
'error', 'error',
'There has been an error creating the wanted network' 'There has been an error creating the wanted network'
); );

View File

@ -4,6 +4,7 @@ import * as interfaces from './interfaces';
import { DockerHost } from './docker.classes.host'; import { DockerHost } from './docker.classes.host';
import { DockerImage } from './docker.classes.image'; import { DockerImage } from './docker.classes.image';
import { DockerSecret } from './docker.classes.secret'; import { DockerSecret } from './docker.classes.secret';
import { logger } from './docker.logging';
export class DockerService { export class DockerService {
// STATIC // STATIC
@ -37,7 +38,7 @@ export class DockerService {
serviceCreationDescriptor: interfaces.IServiceCreationDescriptor serviceCreationDescriptor: interfaces.IServiceCreationDescriptor
): Promise<DockerService> { ): Promise<DockerService> {
// lets get the image // lets get the image
plugins.smartlog.defaultLogger.log( logger.log(
'info', 'info',
`now creating service ${serviceCreationDescriptor.name}` `now creating service ${serviceCreationDescriptor.name}`
); );
@ -73,6 +74,18 @@ export class DockerService {
}); });
} }
if (serviceCreationDescriptor.resources && serviceCreationDescriptor.resources.volumeMounts) {
for(const volumeMount of serviceCreationDescriptor.resources.volumeMounts) {
mounts.push({
Target: volumeMount.containerFsPath,
Source: volumeMount.hostFsPath,
Consistency: 'default',
ReadOnly: false,
Type: 'bind'
});
}
}
const networkArray: Array<{ const networkArray: Array<{
Target: string; Target: string;
Aliases: string[]; Aliases: string[];

3
ts/docker.logging.ts Normal file
View File

@ -0,0 +1,3 @@
import * as plugins from './docker.plugins';
export const logger = new plugins.smartlog.ConsoleLog();

View File

@ -15,8 +15,6 @@ import * as smartrequest from '@pushrocks/smartrequest';
import * as smartstring from '@pushrocks/smartstring'; import * as smartstring from '@pushrocks/smartstring';
import * as smartversion from '@pushrocks/smartversion'; import * as smartversion from '@pushrocks/smartversion';
smartlog.defaultLogger.enableConsole();
export { export {
lik, lik,
smartfile, smartfile,
@ -30,6 +28,13 @@ export {
smartversion smartversion
}; };
// @tsclass scope
import * as tsclass from '@tsclass/tsclass';
export {
tsclass
};
// third party // third party
import * as rxjs from 'rxjs'; import * as rxjs from 'rxjs';

View File

@ -1,3 +1,5 @@
import * as plugins from '../docker.plugins';
import * as interfaces from './'; import * as interfaces from './';
import { DockerNetwork } from '../docker.classes.network'; import { DockerNetwork } from '../docker.classes.network';
import { DockerSecret } from '../docker.classes.secret'; import { DockerSecret } from '../docker.classes.secret';
@ -13,6 +15,7 @@ export interface IServiceCreationDescriptor {
ports: string[]; ports: string[];
accessHostDockerSock?: boolean; accessHostDockerSock?: boolean;
resources?: { resources?: {
memorySizeMB: number; memorySizeMB?: number;
volumeMounts?: plugins.tsclass.container.IVolumeMount[]
}; };
} }