Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
ea5e552192 | |||
1afe5c6e16 | |||
eb0dc96dbd | |||
55f45b1c3a |
2
package-lock.json
generated
2
package-lock.json
generated
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@mojoio/docker",
|
||||
"version": "1.0.59",
|
||||
"version": "1.0.61",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@mojoio/docker",
|
||||
"version": "1.0.59",
|
||||
"version": "1.0.61",
|
||||
"description": "easy communication with docker remote api from node, TypeScript ready",
|
||||
"private": false,
|
||||
"main": "dist/index.js",
|
||||
|
@ -1,6 +1,5 @@
|
||||
import { expect, tap } from '@pushrocks/tapbundle';
|
||||
import * as docker from '../ts/index';
|
||||
import { DockerService } from '../ts/index';
|
||||
|
||||
let testDockerHost: docker.DockerHost;
|
||||
|
||||
@ -94,8 +93,11 @@ tap.test('should create a service', async () => {
|
||||
labels: {},
|
||||
contentArg: '{"hi": "wow"}'
|
||||
});
|
||||
const testService = await DockerService.createService(testDockerHost, {
|
||||
image: 'nginx:latest',
|
||||
const testImage = await docker.DockerImage.createFromRegistry(testDockerHost, {
|
||||
imageUrl: 'nginx:latest'
|
||||
});
|
||||
const testService = await docker.DockerService.createService(testDockerHost, {
|
||||
image: testImage,
|
||||
labels: {
|
||||
'testlabel': 'hi'
|
||||
},
|
||||
|
@ -8,6 +8,7 @@ export class DockerHost {
|
||||
* the path where the docker sock can be found
|
||||
*/
|
||||
public socketPath: string;
|
||||
private registryToken: string = '';
|
||||
|
||||
/**
|
||||
* the constructor to instantiate a new docker sock instance
|
||||
@ -34,8 +35,18 @@ export class DockerHost {
|
||||
const response = await this.request('POST', '/auth', {
|
||||
serveraddress: registryUrl,
|
||||
username: userArg,
|
||||
password: passArg,
|
||||
password: passArg
|
||||
});
|
||||
if (response.body.Status !== 'Login Succeeded') {
|
||||
console.log(`Login failed with ${response.body.Status}`);
|
||||
throw new Error(response.body.Status);
|
||||
}
|
||||
console.log(response.body.Status);
|
||||
this.registryToken = plugins.smartstring.base64.encode(response.body.IdentityToken);
|
||||
}
|
||||
|
||||
public setAuthToken(authToken: string) {
|
||||
this.registryToken = authToken;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -122,6 +133,7 @@ export class DockerHost {
|
||||
method: methodArg,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'X-Registry-Auth': this.registryToken,
|
||||
Host: 'docker.sock'
|
||||
},
|
||||
requestBody: dataArg,
|
||||
|
@ -119,7 +119,13 @@ export class DockerImage {
|
||||
});
|
||||
}
|
||||
|
||||
public tagImage(newTag) {}
|
||||
/**
|
||||
* tag an image
|
||||
* @param newTag
|
||||
*/
|
||||
public async tagImage(newTag) {
|
||||
throw new Error('.tagImage is not yet implemented');
|
||||
}
|
||||
|
||||
/**
|
||||
* pulls the latest version from the registry
|
||||
|
@ -39,13 +39,11 @@ export class DockerService {
|
||||
// lets get the image
|
||||
plugins.smartlog.defaultLogger.log(
|
||||
'info',
|
||||
`downloading image for service ${serviceCreationDescriptor.name}`
|
||||
`now creating service ${serviceCreationDescriptor.name}`
|
||||
);
|
||||
const serviceImage = await DockerImage.createFromRegistry(dockerHost, {
|
||||
imageUrl: serviceCreationDescriptor.image
|
||||
});
|
||||
|
||||
const serviceVersion = serviceImage.Labels.version;
|
||||
|
||||
// await serviceCreationDescriptor.image.pullLatestImageFromRegistry();
|
||||
const serviceVersion = await serviceCreationDescriptor.image.getVersion();
|
||||
|
||||
const labels: interfaces.TLabels = {
|
||||
...serviceCreationDescriptor.labels,
|
||||
@ -78,7 +76,7 @@ export class DockerService {
|
||||
Name: serviceCreationDescriptor.name,
|
||||
TaskTemplate: {
|
||||
ContainerSpec: {
|
||||
Image: serviceCreationDescriptor.image,
|
||||
Image: serviceCreationDescriptor.image.RepoTags[0],
|
||||
Labels: labels,
|
||||
Secrets: secretArray
|
||||
},
|
||||
|
@ -1,10 +1,11 @@
|
||||
import * as interfaces from './';
|
||||
import { DockerNetwork } from '../docker.classes.network';
|
||||
import { DockerSecret } from '../docker.classes.secret';
|
||||
import { DockerImage } from '../docker.classes.image';
|
||||
|
||||
export interface IServiceCreationDescriptor {
|
||||
name: string;
|
||||
image: string;
|
||||
image: DockerImage;
|
||||
labels: interfaces.TLabels;
|
||||
networks: DockerNetwork[];
|
||||
networkAlias: string;
|
||||
|
Reference in New Issue
Block a user