Jenkins sidecar 方法 - 在主容器内运行多个容器

问题描述

我试图从这里复制 Jenkins 中的 sidecar 方法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”命令中列出。 任何帮助和建议都会非常有帮助

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...