gpt4 book ai didi

jenkins - 在 Jenkins 管道中获取容器ID时出错

转载 作者:行者123 更新时间:2023-12-02 18:16:02 25 4
gpt4 key购买 nike

我有一个管道脚本,试图将多个容器(自由容器,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")

但是当我尝试将其链接到行家时:
mvn.inside('-v $M2_REPO:/m2repo --link=${db.id}:oracle ') {

我在 Jenkins 遇到以下错误:

Failure: java.io.IOException: Failed to run image 'maven:3.3.9-jdk-8'. Error: docker: Error response from daemon: Could not get container for ${db.id}. See '/usr/bin/docker-current run --help'.



这可能与使用 inside而不是 run的事实有关吗?

最佳答案

您的变量${db.id}不会在Pipeline DSL脚本内被替换(或俗称:interpolated),因为您放置的是单引号。

将命令调整为,使用双引号代替:

mvn.inside("-v \$M2_REPO:/m2repo --link=${db.id}:oracle") {

我想您不想插入 $M2_REPO,因此可以通过在前面加上 \来对其进行转义。

关于jenkins - 在 Jenkins 管道中获取容器ID时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41584187/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com