UNPKG

iop

Version:
60 lines (59 loc) 1.68 kB
import { SSHClient } from "../ssh"; import { DockerClient } from "../docker"; export interface PortUsage { port: number; protocol: "tcp" | "udp"; process?: string; pid?: number; containerName?: string; containerImage?: string; isDockerContainer: boolean; } export interface PortConflict { port: number; hostPort: number; containerPort: number; requestedBy: string; conflictsWith: PortUsage; serverHostname: string; } export declare class PortChecker { private sshClient; private dockerClient; private serverHostname; private verbose; constructor(sshClient: SSHClient, dockerClient: DockerClient, serverHostname: string, verbose?: boolean); /** * Check what ports are currently in use on the server */ getPortUsage(): Promise<PortUsage[]>; /** * Get port usage from Docker containers */ private getDockerPortUsage; /** * Get port usage from system processes (non-Docker) */ private getSystemPortUsage; /** * Check for port conflicts with planned deployments */ checkPortConflicts(plannedPorts: Array<{ hostPort: number; containerPort: number; requestedBy: string; protocol?: "tcp" | "udp"; }>, projectName?: string): Promise<PortConflict[]>; /** * Generate suggestions for resolving port conflicts */ generateConflictSuggestions(conflicts: PortConflict[]): string[]; } /** * Extract port mappings from Docker port specification */ export declare function parsePortMappings(ports: string[]): Array<{ hostPort: number; containerPort: number; protocol: "tcp" | "udp"; }>;