我有一个管道脚本,我试图将几个容器链接在一起(自由容器,oracle容器和maven jdk容器)。
首先我创建oracle容器:
db = docker.build('oracle', 'docker/oracle').run("-p 49160:22 -p 49161:1521")
然后将它链接到我的自由容器,似乎工作正常:
wlp = docker.build('liberty', 'docker/liberty').run("-p 9080:9080 --link=${db.id}:oracle")
但是当我尝试将它链接到maven时:
mvn.inside('-v $M2_REPO:/m2repo --link=${db.id}:oracle ') {
我在jenkins中收到以下错误:
失败:java.io.IOException:无法运行image' maven:3.3.9-jdk-8'。 错误:docker:来自守护程序的错误响应:无法获取容器 $ {} db.id。请参阅' / usr / bin / docker-current run --help'。
这是否与使用inside
来电而不是run
的事实有关?
答案 0 :(得分:3)
您的变量${db.id}
未在管道DSL脚本中替换(或者说话:interpolated),因为您使用的是单引号
将命令调整为使用双引号:
mvn.inside("-v \$M2_REPO:/m2repo --link=${db.id}:oracle") {
我认为您不希望$M2_REPO
进行插值,因此通过预先设置\
来转义。
答案 1 :(得分:0)
我不知道它是什么语言但是docker build会查找文件" Dockerfile"在当前目录中。所以
tag docker/oracle
有一些问题,因为它已经使用 header h1 {
color: white; text-align:center;
-webkit-text-fill-color: transparent;
-webkit-text-stroke: 3px white;
/.*text-shadow: 0px 0px 0.1em aqua, 0px 0px 0.25em lime;*/
font-size: 7em;
}
header h1:hover {
-webkit-text-fill-color: white;
}
构建了图像
你只需要运行这个图像而不是构建。