你的
minio/minio
容器将其容器端口9000映射到主机端口9000。你的
maven:3.5.2-jdk-8-alpine
容器也已启动,但它对
minio
容器本身或主机。所以,运行类似
curl localhost:9000
的内部
maven:3.5.2-jdk-8-alpine
不会得到响应。
当您在笔记本电脑上运行时,我猜您正在运行
迷你们
带有
-p 9000:9000
选择但是
您正在跑步
mvn clean package
从笔记本电脑
. 端口映射到笔记本电脑的
9000
,并运行类似
curl本地主机:9000
从你的笔记本电脑会得到回应。
你需要做的是
迷你/迷你
可访问的容器
maven:3.5.2-jdk-8-alpine
容器有几种不同的方法
container networking
. 一种方法是使用
a user defined bridge network
:
node {
sh 'docker network create --driver bridge minio-net'
docker.image('minio/minio').withRun('--network-alias minio --net minio-net -e "MINIO_ACCESS_KEY=mykey" -e "MINIO_SECRET_KEY=mysecret"', 'server /data') { c ->
docker.image('maven:3.5.2-jdk-8-alpine').inside('--net minio-net') {
sh 'nc -zv minio 9000'
sh 'mvn clean package'
}
}
sh 'docker network rm minio-net'
}
在此示例中:
-
使用名称创建本地网桥网络
minio-net
-
这个
迷你/迷你
容器已连接到
迷你网络
网络作用域别名为的容器
迷你们
-
nc
用于检查与的连接
minio:9000
在构建步骤之前
您可能希望注入一个环境变量或其他内容来引用minio服务的位置,这可能是
localhost
在笔记本电脑上,但在其他地方,具体取决于它的执行方式。
注:
为了简洁起见,我对网络名称进行了硬编码,并假设没有故障