在 docker 容器中使用 Jenkins 构建 ASP.NET 5

Building ASP.NET 5 with Jenkins inside a docker container

我正在尝试使用 Jenkins 构建一个 Asp.net 5 应用程序。 Jenkins 托管在 docker 容器中(图像基于官方 jenkins docker 图像)。

ASP.Net 5 已使用 ubuntu 指令安装到容器中,通过 docker exec.

在容器内时,我可以执行 dnvm、dnu 等,但是 Jenkins shell 脚本找不到这些命令。 dnvm 升级已经 运行 我相信它应该在路径上可用。

我能想到的最后一招 运行将 Jenkins 设置为 root,但我觉得这不合适。

有什么想法吗?

我认为您的 Jenkins 安装有问题(或者至少 PATH 设置不正确)。 运行 以 root 身份,即使不是很干净也可以像你在 运行 里面 Docker 那样完成。但是它仍然应该 运行 作为普通用户。

你看到了吗offical Docker Jenkins

made here 相同的响应。 最佳实践建议每个 Docker 一个进程(因此 Jenkins 一个 Docker,Asp.net5 一个,尽管我对两者都不熟悉)。您可能希望 运行 您的 Jenkins 服务合二为一 Docker。您可能需要查看此 post from Jenkins.

因此,为了做到这一点,我不得不将 DNVM 在命令行上执行的环境变量放入 jenkins 构建应用程序(您可以注入标准环境变量)。

为了处理多个版本,我在不同的从站上以不同的状态安装了 dnvm 并标记了构建。