diff --git a/package-lock.json b/package-lock.json index f84668e0..428846c3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "asyncro": "^3.0.0", "boxen": "^5.0.1", "chalk": "^4.1.2", - "docker-compose": "^0.23.13", + "docker-compose": "^0.24.8", "dockerode": "^3.3.0", "fs-extra": "^9.1.0", "hostile": "^1.3.3", @@ -50,7 +50,7 @@ "lint-staged": "^10.5.4" }, "engines": { - "node": ">=14" + "node": ">=16" } }, "node_modules/@10up/eslint-config": { @@ -1136,16 +1136,27 @@ } }, "node_modules/docker-compose": { - "version": "0.23.19", - "resolved": "https://registry.npmjs.org/docker-compose/-/docker-compose-0.23.19.tgz", - "integrity": "sha512-v5vNLIdUqwj4my80wxFDkNH+4S85zsRuH29SO7dCWVWPCMt/ohZBsGN6g6KXWifT0pzQ7uOxqEKCYCDPJ8Vz4g==", + "version": "0.24.8", + "resolved": "https://registry.npmjs.org/docker-compose/-/docker-compose-0.24.8.tgz", + "integrity": "sha512-plizRs/Vf15H+GCVxq2EUvyPK7ei9b/cVesHvjnX4xaXjM9spHe2Ytq0BitndFgvTJ3E3NljPNUEl7BAN43iZw==", "dependencies": { - "yaml": "^1.10.2" + "yaml": "^2.2.2" }, "engines": { "node": ">= 6.0.0" } }, + "node_modules/docker-compose/node_modules/yaml": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.1.tgz", + "integrity": "sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/docker-modem": { "version": "3.0.8", "resolved": "https://registry.npmjs.org/docker-modem/-/docker-modem-3.0.8.tgz", @@ -4038,6 +4049,7 @@ "version": "1.10.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, "engines": { "node": ">= 6" } @@ -4873,11 +4885,18 @@ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" }, "docker-compose": { - "version": "0.23.19", - "resolved": "https://registry.npmjs.org/docker-compose/-/docker-compose-0.23.19.tgz", - "integrity": "sha512-v5vNLIdUqwj4my80wxFDkNH+4S85zsRuH29SO7dCWVWPCMt/ohZBsGN6g6KXWifT0pzQ7uOxqEKCYCDPJ8Vz4g==", + "version": "0.24.8", + "resolved": "https://registry.npmjs.org/docker-compose/-/docker-compose-0.24.8.tgz", + "integrity": "sha512-plizRs/Vf15H+GCVxq2EUvyPK7ei9b/cVesHvjnX4xaXjM9spHe2Ytq0BitndFgvTJ3E3NljPNUEl7BAN43iZw==", "requires": { - "yaml": "^1.10.2" + "yaml": "^2.2.2" + }, + "dependencies": { + "yaml": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.1.tgz", + "integrity": "sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==" + } } }, "docker-modem": { @@ -7065,7 +7084,8 @@ "yaml": { "version": "1.10.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true }, "yargs": { "version": "16.2.0", diff --git a/package.json b/package.json index b9b30d34..f18209a6 100644 --- a/package.json +++ b/package.json @@ -60,7 +60,7 @@ "asyncro": "^3.0.0", "boxen": "^5.0.1", "chalk": "^4.1.2", - "docker-compose": "^0.23.13", + "docker-compose": "^0.24.8", "dockerode": "^3.3.0", "fs-extra": "^9.1.0", "hostile": "^1.3.3", diff --git a/src/utils/docker-compose.js b/src/utils/docker-compose.js index 9bfc8399..f8efb847 100644 --- a/src/utils/docker-compose.js +++ b/src/utils/docker-compose.js @@ -10,7 +10,9 @@ function interpretComposerResults( { out, err, exitCode } ) { function makeProxyFunction( fn ) { return async function( ...args ) { - const results = await compose[ fn ]( ...args ); + const v2Available = ( await compose.v2.version() ).exitCode === 0; + const latestCompose = v2Available ? compose.v2 : compose; + const results = await latestCompose[ fn ]( ...args ); return interpretComposerResults( results ); }; }