Compare commits

..

4 Commits

Author SHA1 Message Date
846ea9997e 1.0.46 2019-08-16 18:32:42 +02:00
de54db33ad fix(core): update 2019-08-16 18:32:41 +02:00
314cb692ac 1.0.45 2019-08-16 18:21:55 +02:00
73f8ded3fe fix(core): update 2019-08-16 18:21:55 +02:00
6 changed files with 26 additions and 6 deletions

2
package-lock.json generated
View File

@ -1,6 +1,6 @@
{ {
"name": "@mojoio/docker", "name": "@mojoio/docker",
"version": "1.0.44", "version": "1.0.46",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {

View File

@ -1,6 +1,6 @@
{ {
"name": "@mojoio/docker", "name": "@mojoio/docker",
"version": "1.0.44", "version": "1.0.46",
"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/index.js",

View File

@ -64,12 +64,17 @@ tap.test('should list all services', async tools => {
}); });
tap.test('should create a service', async () => { tap.test('should create a service', async () => {
const testNetwork = await docker.DockerNetwork.createNetwork(testDockerHost, {
Name: 'testNetwork'
});
await DockerService.createService(testDockerHost, { await DockerService.createService(testDockerHost, {
Image: 'nginx', Image: 'nginx:latest',
Labels: { Labels: {
'testlabel': 'hi' 'testlabel': 'hi'
}, },
Name: 'testService' Name: 'testService',
networks: [testNetwork],
networkAlias: 'testService'
}); });
}); });

View File

@ -47,6 +47,8 @@ export class DockerImage {
} else { } else {
imageUrlObject.imageTag = imageTag; imageUrlObject.imageTag = imageTag;
} }
} else if (!imageUrlObject.imageTag) {
imageUrlObject.imageTag = 'latest';
} }
imageUrlObject.imageOriginTag = `${imageUrlObject.imageUrl}:${imageUrlObject.imageTag}`; imageUrlObject.imageOriginTag = `${imageUrlObject.imageUrl}:${imageUrlObject.imageTag}`;

View File

@ -23,10 +23,19 @@ export class DockerService {
serviceCreationDescriptor: interfaces.IServiceCreationDescriptor serviceCreationDescriptor: interfaces.IServiceCreationDescriptor
) { ) {
// lets get the image // lets get the image
DockerImage.createFromRegistry(dockerHost, { plugins.smartlog.defaultLogger.log('info', `downloading image for service ${serviceCreationDescriptor.Name}`);
const serviceImage = await DockerImage.createFromRegistry(dockerHost, {
imageUrl: serviceCreationDescriptor.Image imageUrl: serviceCreationDescriptor.Image
}); });
const networkArray: any[] = [];
for (const network of serviceCreationDescriptor.networks) {
networkArray.push({
Target: network.Name,
Aliases: [serviceCreationDescriptor.networkAlias]
});
}
dockerHost.request('POST', '/services/create', { dockerHost.request('POST', '/services/create', {
Name: serviceCreationDescriptor.Name, Name: serviceCreationDescriptor.Name,
TaskTemplate: { TaskTemplate: {
@ -35,7 +44,8 @@ export class DockerService {
Labels: serviceCreationDescriptor.Labels Labels: serviceCreationDescriptor.Labels
} }
}, },
Labels: serviceCreationDescriptor.Labels Labels: serviceCreationDescriptor.Labels,
Networks: networkArray
}); });
} }

View File

@ -1,7 +1,10 @@
import * as interfaces from './'; import * as interfaces from './';
import { DockerNetwork } from '../docker.classes.network';
export interface IServiceCreationDescriptor { export interface IServiceCreationDescriptor {
Name: string; Name: string;
Image: string; Image: string;
Labels: interfaces.TLabels; Labels: interfaces.TLabels;
networks: DockerNetwork[];
networkAlias: string;
} }