我试图从这里复制 Jenkins 中的边车方法:https ://www.jenkins.io/doc/book/pipeline/docker/#running-sidecar-containers但我试图在里面运行多个容器。我的代码看起来像这样:
PG_IMG = 'custom_postgres:dev'
PG_NAME = 'db'
script.docker.withRegistry('https://index.docker.io/v1/', 'dockerHub'){
script.docker.image(PG_IMG).withRun('-p 5432:5432'){c ->
script.docker.image(PG_IMG).inside("--link ${c.id}:${PG_NAME}"){
script.sh("echo ======= db ======")
}
script.docker.image('redis').inside("-d --link ${c.id}:${PG_NAME}"){
script.sh("echo ======= redis ======")
}
script.docker.image('python:3.6').inside("-u root -v /var/run/docker.sock:/var/run/docker.sock --link ${c.id}:'${PG_NAME}'") {
script.sh("apt-get update -qq && apt-get install curl -y && curl --silent -SL https://get.docker.com/ | sh")
script.sh("docker ps -a")
}
}
}
然后,我试图通过设置 docker.sock 来列出通过 python 容器在 VM 中运行的所有容器,但是“docker ps -a”命令输出仅显示两个容器已启动并正在运行,并且没有关于redis 映像(甚至不在退出状态)但从 Jenkins 日志中我可以看到 redis 映像正在被拉取。我无法得到我在这里缺少的东西以及为什么 redis 容器没有在 'docker ps -a' 命令中列出。任何帮助和建议都会非常有帮助