File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -4,4 +4,7 @@ var DockerodeCompose = require('../lib/compose');
44var docker = new Dockerode ( ) ;
55var compose = new DockerodeCompose ( docker ) ;
66
7- compose . compose ( './test/wordpress.yml' ) ;
7+ ( async ( ) => {
8+ var state = await compose . compose ( './test/wordpress.yml' , 'wordpress' ) ;
9+ console . log ( state ) ;
10+ } ) ( ) ;
Original file line number Diff line number Diff line change 11const yaml = require ( 'js-yaml' ) ;
22const fs = require ( 'fs' ) ;
3+ const { nextTick } = require ( 'process' ) ;
34
45class Compose {
56 constructor ( dockerode ) {
6- this . dockerode = dockerode ;
7+ this . docker = dockerode ;
78 }
89
9- compose ( file ) {
10+ async compose ( file , projectName ) {
11+ var self = this ;
12+ var output = { } ;
13+ if ( projectName === undefined ) {
14+ throw new Error ( 'please specify a project name' ) ;
15+ }
16+ self . projectName = projectName ;
1017 try {
11- const doc = yaml . load ( fs . readFileSync ( file , 'utf8' ) ) ;
12- console . log ( doc ) ;
18+ self . recipe = yaml . load ( fs . readFileSync ( file , 'utf8' ) ) ;
19+ console . log ( self . recipe ) ;
20+ output . secrets = await self . loadSecrets ( ) ;
21+ return output ;
1322 } catch ( e ) {
14- console . log ( e ) ;
23+ throw e ;
24+ }
25+ }
26+
27+ async loadSecrets ( ) {
28+ var secrets = [ ] ;
29+ var secretNames = Object . keys ( this . recipe . secrets ) ;
30+ for ( var secretName of secretNames ) {
31+ var secret = this . recipe . secrets [ secretName ] ;
32+ if ( secret . external === true ) continue ;
33+ var opts = {
34+ "Name" : this . projectName + '_' + secretName ,
35+ "Data" : fs . readFileSync ( secret . file , 'utf8' )
36+ } ;
37+ if ( secret . name !== undefined ) {
38+ opts . Name = secretName ;
39+ }
40+ try {
41+ secrets . push ( await this . docker . createSecret ( opts ) ) ;
42+ } catch ( err ) {
43+ throw err ;
44+ }
1545 }
46+ return secrets ;
1647 }
1748}
1849
Original file line number Diff line number Diff line change 22 "name" : " dockerode-compose" ,
33 "version" : " 1.0.0" ,
44 "description" : " docker-compose in nodejs using dockerode" ,
5- "main" : " main .js" ,
5+ "main" : " lib/compose .js" ,
66 "scripts" : {
77 "test" : " echo \" Error: no test specified\" && exit 1"
88 },
Original file line number Diff line number Diff line change 1+ xpto
Original file line number Diff line number Diff line change @@ -25,4 +25,10 @@ services:
2525 WORDPRESS_DB_PASSWORD : wordpress
2626 WORDPRESS_DB_NAME : wordpress
2727volumes :
28- db_data : {}
28+ db_data : {}
29+ secrets :
30+ server-secret :
31+ file : ./test/secret.txt
32+ server-secret-external :
33+ file : ./teste/secret.txt
34+ external : true
You can’t perform that action at this time.
0 commit comments