我正在使用jenkins持續集成.net項目。到目前爲止,我能夠在窗口中設置詹金斯的工作。但現在我需要在作爲碼頭集裝箱運行的jenkins中複製這一切。我能夠在docker中啓動jenkins,使用github作爲源代碼庫,但是當我嘗試構建此項目時,它失敗。我的項目是使用asp.net核心,所以我假設它也應該在Linux上運行(這是docker虛擬機的操作系統)。 我在這裏錯過了什麼?任何幫助非常感謝如何在Docker中運行.Net項目作爲jenkins作業的一部分
回答
Jenikins任務應該調用dotnet
命令來構建。目前尚不支持MSBuild dotnet
。
基本上,它做類似的東西,我們做KoreBuild什麼:
- DOTNET恢復
- DOTNET編譯/ DOTNET發佈
- DOTNET測試
等
我試過dotnet構建和接收錯誤輸出:[TestMono] $/bin/sh的-xe /tmp/hudson1233862377010940298.sh + DOTNET構建 /tmp/hudson1233862377010940298.sh:2:/tmp/hudson1233862377010940298.sh:DOTNET:找不到 構建步驟 '執行shell' 標記作爲構建失敗 完成:失敗 – Monica
您必須安裝dotnet並將其作爲構建步驟的一部分添加到PATH –
我已經下載了dotnet CLI及其在虛擬機中的工作,但是當我試圖從jenkins工作執行相同的操作時,錯誤:無法創建主要的NuGet緩存。恢復失敗的原因如下:1.這就像沒有任何依賴關係已解決。你能提出一些建議嗎? – Monica
我正在使用.Net核心開發一個項目,我們開始在Docker中使用Jenkins容器,到目前爲止,我發現的唯一方法是創建一個自定義Jenkins圖像。這是我的碼頭文件:
FROM jenkins
USER root
# Work around https://github.com/dotnet/cli/issues/1582 until Docker releases a
# fix (https://github.com/docker/docker/issues/20818). This workaround allows
# the container to be run with the default seccomp Docker settings by avoiding
# the restart_syscall made by LTTng which causes a failed assertion.
ENV LTTNG_UST_REGISTER_TIMEOUT 0
# Install .NET CLI dependencies
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
libc6 \
libcurl3 \
libgcc1 \
libgssapi-krb5-2 \
libicu52 \
liblttng-ust0 \
libssl1.0.0 \
libstdc++6 \
libunwind8 \
libuuid1 \
zlib1g \
&& rm -rf /var/lib/apt/lists/*
# Install .NET Core SDK
ENV DOTNET_SDK_VERSION 1.0.0-preview2-003131
ENV DOTNET_SDK_DOWNLOAD_URL https://dotnetcli.blob.core.windows.net/dotnet/preview/Binaries/$DOTNET_SDK_VERSION/dotnet-dev-debian-x64.$DOTNET_SDK_VERSION.tar.gz
RUN curl -SL $DOTNET_SDK_DOWNLOAD_URL --output dotnet.tar.gz \
&& mkdir -p /usr/share/dotnet \
&& tar -zxf dotnet.tar.gz -C /usr/share/dotnet \
&& rm dotnet.tar.gz \
&& ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet
# Trigger the population of the local package cache
ENV NUGET_XMLDOC_MODE skip
RUN mkdir warmup \
&& cd warmup \
&& dotnet new \
&& cd .. \
&& rm -rf warmup \
&& rm -rf /tmp/NuGetScratch
USER jenkins
我仍在尋找更好的方法來做到這一點。
- 1. 在Jenkins作業的另一個Jenkins實例上運行Jenkins作業
- 2. 在Jenkins中運行並行作業
- 3. 拆分Jenkins作業同時運行
- 4. cron作業部分運行
- 5. 如何在Jenkins中將作業分組?
- 6. 在容器中運行Jenkins作業
- 7. 如何在Jenkins/Hudson中定義並行運行的作業?
- 8. 作爲Gradle Java項目的一部分運行Dynamodb
- 9. 配置cron作業在Jenkins上每15分鐘運行一次
- 10. 作爲Jenkins構建的一部分運行Spock測試
- 11. 如何在jenkins中創建構建作業時調用項目
- 12. 在Jenkins連續運行作業
- 13. Jenkins/Hudson作業參數在運行時?
- 14. 如何在運行期間在Jenkins中觸發作業?
- 15. 配置Jenkins項目同時在多個節點上運行一個作業
- 16. jenkins中分散執行作業
- 17. 如何在jenkins的同一個項目中有兩個cron作業
- 18. 如何結合所有排隊的作業(gerrit變更)並作爲jenkins中的單個作業運行
- 19. jenkins docker插件作業「Permission denied」錯誤
- 20. 我如何發送信號給正在運行的jenkins作業
- 21. 如何正確啓動也在Docker中運行的Jenkins內部的Docker
- 22. jenkins使用的用戶在jenkins工作運行時不是組的一部分
- 23. 如何在Jenkins中爲不同的URL /環境運行單個作業?
- 24. Jenkins執行shell如何獲取運行作業的用戶
- 25. 如何在Jenkins中運行PowerShell腳本作爲工作
- 26. Jenkins中的作業
- 27. 如何在jenkins中爲maven 3項目單獨做聲納作業
- 28. 在HDFS文件的一部分上運行MR作業
- 29. jenkins - 如何查看外部作業的日誌目錄?
- 30. 如何只在Jenkins多分支管道作業中建立一個目錄?
也許描述你在詹金斯工作中執行的命令 – lvthillo
我試圖在jenkin中使用MSBuild插件來構建我的解決方案。以下是控制檯輸出的一部分:MSBuild.exe的路徑:msbuild.exe 從/ var/jenkins_home/workspace/TestAspNetCore執行命令msbuild.exe AspNetCore.sln [TestAspNetCore] $ msbuild.exe AspNetCore.sln 構建步驟'建立一個Visual Studio項目或解決方案使用MSBuild'更改生成結果爲FAILURE 構建步驟'建立一個Visual Studio項目或解決方案使用MSBuild'標記構建爲失敗 完成:失敗 – Monica