【发布时间】:2014-09-08 08:43:38
【问题描述】:
我正在尝试让 Jenkins 在 Jenkins 从站上的 docker 中运行以下命令:
docker run -i -v `pwd`:/opt/myapp -w /opt/myapp -t mydockerimage /bin/bash -c "./setup_dev_env.sh && make all"
问题在于,当我在 Jenkins 中运行此 时,会生成 Docker 进程,但 Jenkins 不会等待它并立即返回成功。但是,如果我将 Docker 命令替换为无限循环,Jenkins 将按预期等待。
当我直接从 build slave 运行这个命令时,作为 Jenkins 用户,系统等待命令完成(这是我想要发生的)。
我尝试过docker attach,但它也会立即返回。 docker wait 将导致 Jenkins 等待它,但我不会看到任何输出。
也许我做错了……
- 如何让 Jenkins 等待此命令完成?
- 如何让 Jenkins 显示在 docker 容器中运行的命令的输出?
- 如何设置在 Docker 中运行的命令的退出代码,以便 Jenkins 可以确定它是成功还是失败?
【问题讨论】: