mirror of
https://github.com/caprover/caprover
synced 2026-09-26 16:45:39 +00:00
Added endpoint for app logs
This commit is contained in:
Submodule
+1
Submodule captain-sample-apps/react-via-caprover added at 10014e0bd7
Generated
+10
-24
@@ -86,9 +86,9 @@
|
||||
}
|
||||
},
|
||||
"@types/dockerode": {
|
||||
"version": "2.5.10",
|
||||
"resolved": "https://registry.npmjs.org/@types/dockerode/-/dockerode-2.5.10.tgz",
|
||||
"integrity": "sha512-Aiy0iYuWudPOHNc69LYHCfvjzvJ0KaRIkM9o6unMQSOh7rp7/KydUVb5KRGRSoRk9V7uWv9IssEi/ahF4yaOkA==",
|
||||
"version": "2.5.11",
|
||||
"resolved": "https://registry.npmjs.org/@types/dockerode/-/dockerode-2.5.11.tgz",
|
||||
"integrity": "sha512-9FY53BDPLc5Kof3vV4IF1PTCslnlJR+kn/1HNJsYlAdSntUU5PU59aKBH1I9vTAFqcUcRsNGvaZo/7VhQLfwew==",
|
||||
"requires": {
|
||||
"@types/node": "*"
|
||||
}
|
||||
@@ -2535,14 +2535,12 @@
|
||||
"balanced-match": {
|
||||
"version": "1.0.0",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true
|
||||
"dev": true
|
||||
},
|
||||
"brace-expansion": {
|
||||
"version": "1.1.11",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"balanced-match": "^1.0.0",
|
||||
"concat-map": "0.0.1"
|
||||
@@ -2557,20 +2555,17 @@
|
||||
"code-point-at": {
|
||||
"version": "1.1.0",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true
|
||||
"dev": true
|
||||
},
|
||||
"concat-map": {
|
||||
"version": "0.0.1",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true
|
||||
"dev": true
|
||||
},
|
||||
"console-control-strings": {
|
||||
"version": "1.1.0",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true
|
||||
"dev": true
|
||||
},
|
||||
"core-util-is": {
|
||||
"version": "1.0.2",
|
||||
@@ -2687,8 +2682,7 @@
|
||||
"inherits": {
|
||||
"version": "2.0.3",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true
|
||||
"dev": true
|
||||
},
|
||||
"ini": {
|
||||
"version": "1.3.5",
|
||||
@@ -2700,7 +2694,6 @@
|
||||
"version": "1.0.0",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"number-is-nan": "^1.0.0"
|
||||
}
|
||||
@@ -2715,7 +2708,6 @@
|
||||
"version": "3.0.4",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"brace-expansion": "^1.1.7"
|
||||
}
|
||||
@@ -2723,14 +2715,12 @@
|
||||
"minimist": {
|
||||
"version": "0.0.8",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true
|
||||
"dev": true
|
||||
},
|
||||
"minipass": {
|
||||
"version": "2.2.4",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"safe-buffer": "^5.1.1",
|
||||
"yallist": "^3.0.0"
|
||||
@@ -2749,7 +2739,6 @@
|
||||
"version": "0.5.1",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"minimist": "0.0.8"
|
||||
}
|
||||
@@ -2830,8 +2819,7 @@
|
||||
"number-is-nan": {
|
||||
"version": "1.0.1",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true
|
||||
"dev": true
|
||||
},
|
||||
"object-assign": {
|
||||
"version": "4.1.1",
|
||||
@@ -2843,7 +2831,6 @@
|
||||
"version": "1.4.0",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"wrappy": "1"
|
||||
}
|
||||
@@ -2965,7 +2952,6 @@
|
||||
"version": "1.0.2",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"code-point-at": "^1.0.0",
|
||||
"is-fullwidth-code-point": "^1.0.0",
|
||||
|
||||
+1
-1
@@ -14,7 +14,7 @@
|
||||
"@types/bcryptjs": "^2.4.2",
|
||||
"@types/configstore": "^4.0.0",
|
||||
"@types/cookie-parser": "^1.4.1",
|
||||
"@types/dockerode": "^2.5.10",
|
||||
"@types/dockerode": "^2.5.11",
|
||||
"@types/ejs": "^2.6.1",
|
||||
"@types/express": "^4.16.0",
|
||||
"@types/fs-extra": "^5.0.4",
|
||||
|
||||
@@ -1471,6 +1471,22 @@ class DockerApi {
|
||||
})
|
||||
}
|
||||
|
||||
getLogForService(serviceName: string, tailCount: number) {
|
||||
const self = this
|
||||
return Promise.resolve() //
|
||||
.then(function() {
|
||||
// TODO REMOVE any once dockerode definition is fixed.
|
||||
// https://github.com/DefinitelyTyped/DefinitelyTyped/pull/32508
|
||||
return (self.dockerode.getService(serviceName) as any) //
|
||||
.logs({
|
||||
tail: tailCount,
|
||||
timestamps: true,
|
||||
stdout: true,
|
||||
stderr: true,
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
getDockerVersion() {
|
||||
const self = this
|
||||
|
||||
|
||||
@@ -14,6 +14,26 @@ const upload = multer({
|
||||
dest: TEMP_UPLOAD,
|
||||
})
|
||||
|
||||
router.get('/:appName/logs', function(req, res, next) {
|
||||
let appName = req.params.appName
|
||||
const serviceManager = InjectionExtractor.extractUserFromInjected(res).user
|
||||
.serviceManager
|
||||
|
||||
return Promise.resolve()
|
||||
.then(function() {
|
||||
return serviceManager.getAppLogs(appName)
|
||||
})
|
||||
.then(function(logs) {
|
||||
let baseApi = new BaseApi(
|
||||
ApiStatusCodes.STATUS_OK,
|
||||
'App build status retrieved'
|
||||
)
|
||||
baseApi.data = {logs}
|
||||
res.send(baseApi)
|
||||
})
|
||||
.catch(ApiStatusCodes.createCatcher(res))
|
||||
})
|
||||
|
||||
router.get('/:appName/', function(req, res, next) {
|
||||
let appName = req.params.appName
|
||||
const serviceManager = InjectionExtractor.extractUserFromInjected(res).user
|
||||
|
||||
@@ -570,6 +570,24 @@ class ServiceManager {
|
||||
this.buildLogs[appName].onBuildFailed(error)
|
||||
}
|
||||
|
||||
getAppLogs(appName: string) {
|
||||
const self = this
|
||||
|
||||
const serviceName = this.dataStore
|
||||
.getAppsDataStore()
|
||||
.getServiceName(appName)
|
||||
|
||||
const dockerApi = this.dockerApi
|
||||
|
||||
return Promise.resolve() //
|
||||
.then(function() {
|
||||
return dockerApi.getLogForService(
|
||||
serviceName,
|
||||
CaptainConstants.configs.appLogSize
|
||||
)
|
||||
})
|
||||
}
|
||||
|
||||
ensureServiceInitedAndUpdated(appName: string) {
|
||||
Logger.d('Ensure service inited and Updated for: ' + appName)
|
||||
const self = this
|
||||
|
||||
@@ -23,6 +23,8 @@ const configs = {
|
||||
|
||||
buildLogSize: 50,
|
||||
|
||||
appLogSize: 500,
|
||||
|
||||
preCheckForWildCard: true,
|
||||
|
||||
registrySubDomainPort: 996,
|
||||
|
||||
Reference in New Issue
Block a user