2016-07-21 1 views
2

Ich arbeite an der kontinuierlichen Integration eines. NET-Projekts mit Jenkins. Bei weitem kann ich einen Jenkins-Job im Fenster einstellen. Aber jetzt muss ich das alles in Jenkins replizieren, die als Docker Container laufen. Ich bin in der Lage, Jenkins in Docker zu starten, Github als Quell-Repository zu verwenden, aber wenn ich versuche, dieses Projekt zu erstellen, schlägt es fehl. Mein Projekt verwendet asp.net core, also gehe ich davon aus, dass es auch auf Linux laufen sollte (was das Betriebssystem von docker virtual machine ist). Was fehlt mir hier? Jede Hilfe wird sehr geschätztWie läuft .Net-Projekt als Teil von Jenkins Job in Docker

+0

vielleicht beschreiben Sie die Befehle, die Sie in Ihrem Job jenkins – lvthillo

+0

Ich habe versucht, MSBuild-Plugin in Jenkins verwenden, um meine Lösung zu bauen. Folgendes ist Teil der Konsolenausgabe: Pfad zu MSBuild.exe: msbuild.exe Ausführen des Befehls msbuild.exe AspNetCore.sln aus/var/jenkins_home/workspace/TestAspNetCore [TestAspNetCore] $ msbuild.exe AspNetCore.sln Build Schritt ' Erstellen Sie ein Visual Studio-Projekt oder -Lösung mit MSBuild 'geändert Build-Ergebnis in FAILURE Build-Schritt' Erstellen Sie ein Visual Studio-Projekt oder eine Lösung mit MSBuild 'markiert Build als Fehler Fertig: FAILURE – Monica

Antwort

0

Die Jenikins Aufgabe sollte dotnet Befehle aufrufen, um zu bauen. MSBuild wird für dotnet noch nicht unterstützt.

Grundsätzlich hat es etwas zu tun, ähnlich dem, was wir tun, in KoreBuild:

  1. Dotnet
  2. Dotnet build/Dotnet
  3. Dotnet Test

etc

+0

Ich versuchte Ditnet Build und Empfangen Fehlerausgabe: [TestMono] $/bin/sh -xe /tmp/hudson1233862377010940298.sh + dotnet build /tmp/hudson1233862377010940298.sh: 2: /tmp/hudson1233862377010940298.sh: dotnet: nicht gefunden Build-Schritt 'Ausführen Shell' markiert als Versagen bauen Beendet: FAILURE – Monica

+0

Sie müssen dotnet installieren und fügen Sie es in den Pfad als Teil Ihrer Build-Schritt –

+0

Ich habe Dotnet CLI und seine Arbeit in der virtuellen Maschine heruntergeladen, aber wenn ich versuche, das gleiche von Jenkins Job auszuführen, bekomme ich Fehler: Fehler beim Erstellen von Prime für den NuGet-Cache. Wiederherstellung fehlgeschlagen mit: 1. Es ist als ob keine der Abhängigkeiten aufgelöst wurde. Kannst du bitte etwas vorschlagen? – Monica

2
veröffentlichen wiederherstellen

Ich arbeite an einem Projekt mit .Net-Kern und wir haben begonnen, Jenkins in Docker zu verwenden Bisher war der einzige Weg, den ich fand, ein benutzerdefiniertes Jenkins-Bild zu erstellen. Dies ist meine Docker-Datei:

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 

Ich bin immer noch auf der Suche nach einem besseren Weg, es zu tun.