2017-10-23 5 views
1

現在、Jenkins Pipelineの改良に取り組んでいます。しかし、実際には、Jenkinsのインスタンスは多くの人やプロジェクトで頻繁に使用されているため、公開されたポートマッピングが既に使用されているという問題にぶつかってきました。Jenkinsパイプラインライブラリで使用されていないポートを見つけよう

私の考えは、この問題を回避するために、ホストマシン上の未使用ポートを特定することです。これを行うために、私はJenkinsを拡張して、ホストシステムから未使用の最初のポートを確認して返す簡単な方法でライブラリを共有したいと考えています。

どのようにこれを達成するアイデアはありますか?

私の現在の解決策は、何とかnetstatツールを使用するシェル関数を利用することです。

ファイル:ServerSocketを使用してgetRandomFreePort.groovy

def call() { 
sh ''' 
    #!/bin/bash 
    while 
    [[!-z $CHECK]]; do 
    PORT = $(((RANDOM % 60000) + 1025)) 
    CHECK = $(sudo netstat - ap | grep $PORT) 
    done 

    echo $PORT 
''' 
} 

答えて

1

あなたは、このコマンドを使用して、未使用のポートを取得することができます:

try { 
    def serverSocket = new ServerSocket(0); 
    System.out.println("listening on port: " + serverSocket.getLocalPort()); 
    //Do anything 
    serverSocket.close() 
} catch (IOException ex) { 
    System.err.println("no available ports"); 
} 

あなたは範囲内の使用可能なポートを見つけする必要がある場合は、この記事をチェック:How to find an available port in a range?

関連する問題