.NET 构建尝试的管道 Shell 脚本权限问题
Pipeline Shell Script Permission Issue on .NET Build Attempt
我正在尝试通过 Bluemix Pipeline 构建一个 ASP.NET5 应用程序,使用 shell 脚本配置一个 运行time 以支持使用 DNVM 进行 .NET 构建。在构建应用程序时,我们需要从 Mono 4.0(例如 kestrel)获取依赖项,但通过 apt-get
可用的最新 Mono 是 3.2。我试图通过在 /etc/apt/sources.list
中添加 Mono deb 存储库来解决这个问题,这样 apt-get update
将获取最新的 Mono 包,但由于权限错误,我们不允许更改 sources.list
或添加或更改 /etc/apt/sources.list.d/*
.
中的任何文件
例如,运行宁:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
sudo echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo -i tee /etc/apt/sources.list.d/mono-xamarin.list
将导致:
sudo: no tty present and no askpass program specified
不使用 sudo
会导致权限问题,我认为我们已经用尽了所有可能的解决方法,例如 ssh -t -t
等等。
有没有人对此有任何解决方法或 运行 shell 脚本的替代方法的建议,其中支持使用 DNVM 和所有依赖项构建的 .NET?在这种情况下使用另一种语言或 cf push
不是一种选择,我们真的想不惜一切代价通过管道推动 .NET。
在试验管道时,我也无法让它与 Mono 一起工作,但如果你可以在 Linux 上只使用 CoreCLR,那么你应该可以。例如,Kestrel 不再需要 Mono。
这是来自 beta7 时间框架的构建脚本,但它应该接近现在使用 RC1 所需的内容:
#!/bin/bash
sudo apt-get update
sudo apt-get -y install libunwind8 gettext libssl-dev libcurl3-dev zlib1g
curl -sSL https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.sh | DNX_BRANCH=dev sh && source ~/.dnx/dnvm/dnvm.sh
dnvm install 1.0.0-beta7 -r coreclr -a x64
cd src/dotnetstarter
dnu restore
dnu build
cd ../../test/dotnetstarter.tests
dnu restore
dnu build
dnx test
cd ../../src/dotnetstarter
dnu publish --runtime ~/.dnx/runtimes/dnx-coreclr-linux-x64.1.0.0-beta7
该应用程序是 https://github.com/IBM-Bluemix/asp.net5-helloworld,我在管道中添加了 dotnetstarter.tests 我试图 运行 的项目(dnx 测试步骤)。最后的发布步骤不是必需的,但包括在内以表明它正在运行。
感谢 opiethehokie,这是工作脚本:
#!/bin/bash
echo --- UPDATING DEPENDENCIES! ---
sudo apt-get update
echo --- DOWNLOADING PACKAGES! ---
sudo apt-get -y install libunwind8 gettext libssl-dev libcurl3-dev zlib1g libcurl4-openssl-dev libicu-dev uuid-dev
echo --- DOWNLOADING DNVM! ---
curl -sSL https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.sh | DNX_BRANCH=dev sh && source ~/.dnx/dnvm/dnvm.sh
echo --- INSTALLING DNVM! ---
dnvm install 1.0.0-rc1-final -r coreclr -a x64
echo --- EXECUTING RESTORE! ---
cd /path-to-project-folder
dnu restore
echo --- EXECUTING BUILD! ---
dnu build
echo --- PUBLISH BUILD (OPTIONAL)! ---
dnu publish --runtime ~/.dnx/runtimes/dnx-coreclr-linux-x64.1.0.0-*`
我正在尝试通过 Bluemix Pipeline 构建一个 ASP.NET5 应用程序,使用 shell 脚本配置一个 运行time 以支持使用 DNVM 进行 .NET 构建。在构建应用程序时,我们需要从 Mono 4.0(例如 kestrel)获取依赖项,但通过 apt-get
可用的最新 Mono 是 3.2。我试图通过在 /etc/apt/sources.list
中添加 Mono deb 存储库来解决这个问题,这样 apt-get update
将获取最新的 Mono 包,但由于权限错误,我们不允许更改 sources.list
或添加或更改 /etc/apt/sources.list.d/*
.
例如,运行宁:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
sudo echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo -i tee /etc/apt/sources.list.d/mono-xamarin.list
将导致:
sudo: no tty present and no askpass program specified
不使用 sudo
会导致权限问题,我认为我们已经用尽了所有可能的解决方法,例如 ssh -t -t
等等。
有没有人对此有任何解决方法或 运行 shell 脚本的替代方法的建议,其中支持使用 DNVM 和所有依赖项构建的 .NET?在这种情况下使用另一种语言或 cf push
不是一种选择,我们真的想不惜一切代价通过管道推动 .NET。
在试验管道时,我也无法让它与 Mono 一起工作,但如果你可以在 Linux 上只使用 CoreCLR,那么你应该可以。例如,Kestrel 不再需要 Mono。
这是来自 beta7 时间框架的构建脚本,但它应该接近现在使用 RC1 所需的内容:
#!/bin/bash
sudo apt-get update
sudo apt-get -y install libunwind8 gettext libssl-dev libcurl3-dev zlib1g
curl -sSL https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.sh | DNX_BRANCH=dev sh && source ~/.dnx/dnvm/dnvm.sh
dnvm install 1.0.0-beta7 -r coreclr -a x64
cd src/dotnetstarter
dnu restore
dnu build
cd ../../test/dotnetstarter.tests
dnu restore
dnu build
dnx test
cd ../../src/dotnetstarter
dnu publish --runtime ~/.dnx/runtimes/dnx-coreclr-linux-x64.1.0.0-beta7
该应用程序是 https://github.com/IBM-Bluemix/asp.net5-helloworld,我在管道中添加了 dotnetstarter.tests 我试图 运行 的项目(dnx 测试步骤)。最后的发布步骤不是必需的,但包括在内以表明它正在运行。
感谢 opiethehokie,这是工作脚本:
#!/bin/bash
echo --- UPDATING DEPENDENCIES! ---
sudo apt-get update
echo --- DOWNLOADING PACKAGES! ---
sudo apt-get -y install libunwind8 gettext libssl-dev libcurl3-dev zlib1g libcurl4-openssl-dev libicu-dev uuid-dev
echo --- DOWNLOADING DNVM! ---
curl -sSL https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.sh | DNX_BRANCH=dev sh && source ~/.dnx/dnvm/dnvm.sh
echo --- INSTALLING DNVM! ---
dnvm install 1.0.0-rc1-final -r coreclr -a x64
echo --- EXECUTING RESTORE! ---
cd /path-to-project-folder
dnu restore
echo --- EXECUTING BUILD! ---
dnu build
echo --- PUBLISH BUILD (OPTIONAL)! ---
dnu publish --runtime ~/.dnx/runtimes/dnx-coreclr-linux-x64.1.0.0-*`