我必须支持一个持续集成(Jenkins)机器,我需要在docker内部运行我的测试。
测试包括创建一个 tap 接口,然后使用它通过套接字与外界(互联网)通信。当我在 Jenkins 上启动我的 docker 镜像时,我能够使用选项“--cap-add=NET_ADMIN --device=/dev/net/tun”在 docker 内部成功创建一个 tap 接口。但是我无法创建套接字通信。它在套接字 connect() 中失败。当我调用套接字 connect() 时收到的错误是
“收到套接字错误:连接被拒绝。正在退出。”
我基本上想连接到 example.com 并从 docker 内部读取网页。docker 镜像中缺少什么才能使套接字操作正常运行?
以下是有关如何启动docker的信息:
stage('test') {
agent {
docker {
image 'my_test_image'
args '-v /home/jenkins/.ssh/:/home/jenkins/.ssh:ro -v /etc/localtime:/etc/localtime:ro --cap-add=NET_ADMIN --device=/dev/net/tun'
}
}
问候,ky