jenkins aus offiziellen Docker Bild von jenkinsWie kann env.BUILD_URL in Jenkins, die im Docker-Container ausgeführt werden, die externe Netzwerk-Portnummer richtig erhalten?
Ausprobierendocker run -d -p 8090:8080 jenkins
Bitte beachte, dass ich 8090
Port meines Gastgebers gewählt haben, um die Docker des Containers 8080
Port abzubilden.
nun innerhalb jenkins, ich bin eine Probe Pipeline laufen, wo ich nur eine Zeile
echo "${env.BUILD_URL}"
Als Ergebnis dieser Pipeline-Skript haben, zeigt die Pipeline Konsolenausgabe folgende
http://localhost:8090/job/sample_pipeline/1/
Beachten Sie die Portnummer 8090
?
Meine Frage ist,
Wie jenkins aus dem Inneren des Behälters weiß, dass ich 8090 als Host-Port festgelegt haben, die an den jenkins Containers 8080 Port Karte sollte?
Ich meine, mit env.BUILD_URL
aus dem Inneren des Docker Container aufgerufen wird, soll nicht jenkins in seine eigenen Host suchen und das Rück Port 8080
als Portnummer, wo es läuft?
Jenkins sollte nicht wissen, dass es als Container ausgeführt wird und dass es außerhalb seines Containerbereichs suchen muss, um festzustellen, welcher externen Portnummer es zugeordnet ist?