mirror of
https://github.com/balena-os/balena-supervisor.git
synced 2025-03-10 22:44:29 +00:00
The image manager module now uses tags instead of docker IDs as the main way to identify docker images on the engine. That is, if the target state image has a name `imageName:tag@digest`, the supervisor will always use the given `imageName` and `tag` (which may be empty) to tag the image on the engine after fetching. This PR also adds checkups to ensure consistency is maintained between the database and the engine. Using tags allows to simplify query and removal operations, since now removing the image now means removing tags matching the image name. Before this change the supervisor relied only on information in the supervisor database, and used that to remove images by docker ID. However, the docker id is not a reliable identifier, since images retain the same id between releases or between services in the same release. List of squashed commits - Remove custom type NormalizedImageInfo - Remove dependency on docker-toolbelt - Use tags to traack supervised images in docker - Ensure tag removal occurs in sequence - Only save database image after download confirmed Relates-to: #1616 #1579 Change-type: patch
144 lines
4.7 KiB
JSON
144 lines
4.7 KiB
JSON
{
|
|
"name": "balena-supervisor",
|
|
"description": "This is balena's Supervisor, a program that runs on IoT devices and has the task of running user Apps (which are Docker containers), and updating them as the balena API informs it to.",
|
|
"version": "12.9.5",
|
|
"license": "Apache-2.0",
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "https://github.com/balena-os/balena-supervisor.git"
|
|
},
|
|
"scripts": {
|
|
"start": "./entry.sh",
|
|
"build": "npm run release && webpack",
|
|
"build:debug": "npm run release && npm run packagejson:copy",
|
|
"lint": "balena-lint -e ts -e js --typescript src/ test/ typings/ build-utils/ webpack.config.js && tsc --noEmit && tsc --noEmit --project tsconfig.js.json",
|
|
"test": "npm run clean && npm run test-nolint",
|
|
"posttest": "npm run lint",
|
|
"test-nolint": "npm run test:build && TEST=1 mocha --config test/.mocharc.js",
|
|
"test:build": "npm run test-build && npm run testitems:copy && npm run packagejson:copy",
|
|
"test:fast": "TEST=1 mocha --config test/.mocharc.fast.js",
|
|
"test:debug": "npm run test:build && TEST=1 mocha --inspect-brk --config test/.mocharc.js",
|
|
"prettify": "balena-lint -e ts -e js --typescript --fix src/ test/ typings/ build-utils/ webpack.config.js",
|
|
"test-build": "tsc --project tsconfig.json",
|
|
"release": "tsc --project tsconfig.release.json && mv build/src/* build",
|
|
"packagejson:copy": "cp package.json build/",
|
|
"testitems:copy": "cp -r test/data build/test/",
|
|
"sync": "ts-node sync/sync.ts",
|
|
"clean": "rimraf build"
|
|
},
|
|
"private": true,
|
|
"dependencies": {
|
|
"dbus": "^1.0.7",
|
|
"mdns-resolver": "^1.0.0",
|
|
"semver": "^7.3.2",
|
|
"sqlite3": "^4.1.1",
|
|
"systeminformation": "^5.6.10"
|
|
},
|
|
"engines": {
|
|
"node": "^12.16.2",
|
|
"npm": "^6.14.4"
|
|
},
|
|
"devDependencies": {
|
|
"@balena/contrato": "^0.6.0",
|
|
"@balena/lint": "^5.1.0",
|
|
"@types/bluebird": "^3.5.32",
|
|
"@types/chai": "^4.2.16",
|
|
"@types/chai-as-promised": "^7.1.3",
|
|
"@types/chai-like": "^1.1.0",
|
|
"@types/chai-things": "0.0.34",
|
|
"@types/common-tags": "^1.8.0",
|
|
"@types/copy-webpack-plugin": "^6.0.0",
|
|
"@types/dbus": "^1.0.0",
|
|
"@types/dockerode": "^2.5.34",
|
|
"@types/event-stream": "^3.3.34",
|
|
"@types/express": "^4.17.3",
|
|
"@types/lockfile": "^1.0.1",
|
|
"@types/lodash": "^4.14.159",
|
|
"@types/memoizee": "^0.4.4",
|
|
"@types/mocha": "^8.2.2",
|
|
"@types/mock-fs": "^4.13.0",
|
|
"@types/morgan": "^1.9.0",
|
|
"@types/node": "^12.12.54",
|
|
"@types/request": "^2.48.5",
|
|
"@types/rewire": "^2.5.28",
|
|
"@types/rimraf": "^2.0.4",
|
|
"@types/rwlock": "^5.0.2",
|
|
"@types/semver": "^7.3.3",
|
|
"@types/shell-quote": "^1.7.0",
|
|
"@types/sinon": "^10.0.0",
|
|
"@types/sinon-chai": "^3.2.5",
|
|
"@types/supertest": "^2.0.11",
|
|
"@types/terser-webpack-plugin": "^3.0.0",
|
|
"@types/tmp": "^0.1.0",
|
|
"@types/webpack": "^4.41.21",
|
|
"@types/yargs": "^15.0.12",
|
|
"balena-register-device": "^7.2.0",
|
|
"blinking": "^0.0.4",
|
|
"bluebird": "^3.7.2",
|
|
"chai": "^4.3.4",
|
|
"chai-as-promised": "^7.1.1",
|
|
"chai-like": "^1.1.1",
|
|
"chai-things": "^0.2.0",
|
|
"chokidar": "^3.5.1",
|
|
"common-tags": "^1.8.0",
|
|
"copy-webpack-plugin": "^6.0.3",
|
|
"deep-object-diff": "^1.1.0",
|
|
"docker-delta": "^2.2.11",
|
|
"docker-progress": "^4.0.3",
|
|
"dockerode": "^2.5.8",
|
|
"duration-js": "^4.0.0",
|
|
"event-stream": "3.3.4",
|
|
"express": "^4.17.1",
|
|
"fork-ts-checker-webpack-plugin": "^5.1.0",
|
|
"fp-ts": "^2.8.1",
|
|
"husky": "^4.2.5",
|
|
"io-ts": "^2.2.10",
|
|
"io-ts-reporters": "^1.2.2",
|
|
"json-mask": "^0.3.9",
|
|
"knex": "^0.20.13",
|
|
"lint-staged": "^10.2.11",
|
|
"livepush": "^3.5.1",
|
|
"lockfile": "^1.0.4",
|
|
"lodash": "^4.17.21",
|
|
"memoizee": "^0.4.14",
|
|
"mixpanel": "^0.10.3",
|
|
"mocha": "^8.3.2",
|
|
"mock-fs": "^4.14.0",
|
|
"morgan": "^1.10.0",
|
|
"network-checker": "^0.1.1",
|
|
"nodemon": "^2.0.4",
|
|
"pinejs-client-request": "^7.2.1",
|
|
"pretty-ms": "^7.0.1",
|
|
"request": "^2.88.2",
|
|
"resin-docker-build": "^1.1.6",
|
|
"resumable-request": "^2.0.1",
|
|
"rewire": "^5.0.0",
|
|
"rimraf": "^2.7.1",
|
|
"rwlock": "^5.0.0",
|
|
"shell-quote": "^1.7.2",
|
|
"sinon": "^10.0.0",
|
|
"sinon-chai": "^3.6.0",
|
|
"strict-event-emitter-types": "^2.0.0",
|
|
"supertest": "^6.1.3",
|
|
"tar-stream": "^2.1.3",
|
|
"terser-webpack-plugin": "^4.1.0",
|
|
"tmp": "^0.1.0",
|
|
"ts-loader": "^7.0.5",
|
|
"ts-node": "^8.10.2",
|
|
"typed-error": "^3.2.1",
|
|
"typescript": "^4.2.4",
|
|
"webpack": "^4.44.1",
|
|
"webpack-cli": "^3.3.12",
|
|
"winston": "^3.3.3",
|
|
"yargs": "^15.4.1"
|
|
},
|
|
"husky": {
|
|
"hooks": {
|
|
"pre-commit": "lint-staged"
|
|
}
|
|
},
|
|
"versionist": {
|
|
"publishedAt": "2021-07-22T15:08:58.689Z"
|
|
}
|
|
}
|