MCPcopy
hub / github.com/louislam/dockge / getStack

Method getStack

backend/stack.ts:377–408  ·  view source on GitHub ↗
(server: DockgeServer, stackName: string, skipFSOperations = false)

Source from the content-addressed store, hash-verified

375 }
376
377 static async getStack(server: DockgeServer, stackName: string, skipFSOperations = false) : Promise<Stack> {
378 let dir = path.join(server.stacksDir, stackName);
379
380 if (!skipFSOperations) {
381 if (!await fileExists(dir) || !(await fsAsync.stat(dir)).isDirectory()) {
382 // Maybe it is a stack managed by docker compose directly
383 let stackList = await this.getStackList(server, true);
384 let stack = stackList.get(stackName);
385
386 if (stack) {
387 return stack;
388 } else {
389 // Really not found
390 throw new ValidationError("Stack not found");
391 }
392 }
393 } else {
394 //log.debug("getStack", "Skip FS operations");
395 }
396
397 let stack : Stack;
398
399 if (!skipFSOperations) {
400 stack = new Stack(server, stackName);
401 } else {
402 stack = new Stack(server, stackName, undefined, undefined, true);
403 }
404
405 stack._status = UNKNOWN;
406 stack._configFilePath = path.resolve(dir);
407 return stack;
408 }
409
410 async start(socket: DockgeSocket) {
411 const terminalName = getComposeTerminalName(socket.endpoint, this.name);

Callers 3

getStackListMethod · 0.95
createMethod · 0.80
createMethod · 0.80

Calls 4

getStackListMethod · 0.95
fileExistsFunction · 0.90
joinMethod · 0.80
getMethod · 0.80

Tested by

no test coverage detected