2016-07-21 61 views
2

我正在使用jenkins持續集成.net項目。到目前爲止,我能夠在窗口中設置詹金斯的工作。但現在我需要在作爲碼頭集裝箱運行的jenkins中複製這一切。我能夠在docker中啓動jenkins,使用github作爲源代碼庫,但是當我嘗試構建此項目時,它失敗。我的項目是使用asp.net核心,所以我假設它也應該在Linux上運行(這是docker虛擬機的操作系統)。 我在這裏錯過了什麼?任何幫助非常感謝如何在Docker中運行.Net項目作爲jenkins作業的一部分

+0

也許描述你在詹金斯工作中執行的命令 – lvthillo

+0

我試圖在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

回答

0

Jenikins任務應該調用dotnet命令來構建。目前尚不支持MSBuild dotnet

基本上,它做類似的東西,我們做KoreBuild什麼:

  1. DOTNET恢復
  2. DOTNET編譯/ DOTNET發佈
  3. DOTNET測試

+0

我試過dotnet構建和接收錯誤輸出:[TestMono] $/bin/sh的-xe /tmp/hudson1233862377010940298.sh + DOTNET構建 /tmp/hudson1233862377010940298.sh:2:/tmp/hudson1233862377010940298.sh:DOTNET:找不到 構建步驟 '執行shell' 標記作爲構建失敗 完成:失敗 – Monica

+0

您必須安裝dotnet並將其作爲構建步驟的一部分添加到PATH –

+0

我已經下載了dotnet CLI及其在虛擬機中的工作,但是當我試圖從jenkins工作執行相同的操作時,錯誤:無法創建主要的NuGet緩存。恢復失敗的原因如下:1.這就像沒有任何依賴關係已解決。你能提出一些建議嗎? – Monica

2

我正在使用.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 

我仍在尋找更好的方法來做到這一點。

相關問題