Skip to content

Commit 0a2e154

Browse files
authored
Merge pull request #15 from userlerueda/fix-depends-on
Fix depends_on not working for Long Syntax
2 parents 87fb986 + 7fa75a8 commit 0a2e154

File tree

4 files changed

+26
-3
lines changed

4 files changed

+26
-3
lines changed

lib/tools.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,13 @@ module.exports = {
1717
while (order.length !== serviceNames.length) {
1818
for (var serviceName of serviceNames) {
1919
if (order.indexOf(serviceName) === -1) {
20-
insertService(serviceName, recipe.services[serviceName].depends_on || [], order);
20+
let depends_on = recipe.services[serviceName].depends_on;
21+
if (typeof depends_on === "object" && !Array.isArray(depends_on)) {
22+
// if we are using Long Syntax https://github.com/compose-spec/compose-spec/blob/master/spec.md#long-syntax-1
23+
// we will need to get keys from object and use them as dependencies
24+
depends_on = Object.keys(depends_on)
25+
}
26+
insertService(serviceName, depends_on || [], order);
2127
}
2228
}
2329
}

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

test/assets/depends.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,22 @@ services:
2727
WORDPRESS_DB_PASSWORD: wordpress
2828
WORDPRESS_DB_NAME: wordpress
2929

30+
wordpress6:
31+
depends_on:
32+
db:
33+
condition: service_started
34+
wordpress2:
35+
condition: service_started
36+
image: wordpress:latest
37+
ports:
38+
- "8000:80"
39+
restart: always
40+
environment:
41+
WORDPRESS_DB_HOST: db:3306
42+
WORDPRESS_DB_USER: wordpress
43+
WORDPRESS_DB_PASSWORD: wordpress
44+
WORDPRESS_DB_NAME: wordpress
45+
3046
db:
3147
image: mysql:5.7
3248
volumes:

test/tools.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ describe('tools', function () {
1414
'db',
1515
'wordpress1',
1616
'wordpress2',
17+
'wordpress6',
1718
'wordpress4',
1819
'wordpress5'
1920
]);

0 commit comments

Comments
 (0)