renovate/lib/manager/docker-compose/extract.js
Rhys Arkins b724a411da
feat: Docker Compose support (#1729)
Adds support for renovating Docker Compose files (e.g. `docker-compose.yml`). Functionality is essentially the same as the existing `Dockerfile` capabilities, so config for `docker` is shared with `docker-compose` but may also be overridden.

Merging as disabled by default - will wait for some opt-in testing before turning it on by default.

Closes #832
2018-03-28 15:24:42 +02:00

42 lines
999 B
JavaScript

const { splitImageParts } = require('../docker/extract');
module.exports = {
extractDependencies,
};
function extractDependencies(content) {
logger.debug('docker-compose.extractDependencies()');
const deps = [];
let lineNumber = 0;
for (const line of content.split('\n')) {
const match = line.match(/^\s*image:\s*([^\s]+)\s*$/);
if (match) {
const currentFrom = match[1];
const {
dockerRegistry,
depName,
currentTag,
currentDigest,
currentDepTagDigest,
currentDepTag,
} = splitImageParts(currentFrom);
logger.info(
{ dockerRegistry, depName, currentTag, currentDigest },
'Docker Compose image'
);
deps.push({
depType: 'Docker Compose',
lineNumber,
currentFrom,
currentDepTagDigest,
dockerRegistry,
currentDepTag,
currentDigest,
depName,
currentTag,
});
}
lineNumber += 1;
}
return deps;
}