在 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 并标记了构建。
我正在尝试使用 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 并标记了构建。