从jenkins的官方码头图片中尝试jenkins
docker run -d -p 8090:8080 jenkins
请注意,我已选择主持人的8090
端口映射到docker容器的8080
端口。
现在,在jenkins内部,我正在运行一个样本管道,我只有一行
echo "${env.BUILD_URL}"
作为此管道脚本的结果,管道控制台输出显示以下
http://localhost:8090/job/sample_pipeline/1/
注意端口号8090
?
我的问题是,
容器内的jenkins如何知道我已将8090设置为应映射到jenkins容器的8080端口的主机端口?
我的意思是,从docker容器内部调用env.BUILD_URL
,jenkins是不是应该查看自己的主机并返回端口8080
作为运行它的端口号?
Jenkins不应该知道它是作为容器运行的,它需要在容器范围之外查看它以确定它映射到的外部端口号是什么?
答案 0 :(得分:0)
由于您使用http://localhost:8090
访问控制台并触发构建,我猜它会从那里获取它。