2015-12-09 3 views
7

Ich arbeite seit einigen Jahren an der .net-Plattform, und ich muss sagen, dass ich sehr beeindruckt bin, wie Microsoft .net Cross-Plattform-kompatibel macht.Implementierung von Continuous Delivery mit DNX und ASP.NET 5

Ich verbrachte Stunden damit, eine kleine Hallo Weltanwendung zu starten, die mit CoreCLR auf einem Mac erstellt wurde. Und es hat funktioniert. Während es immer noch viele UNKNOWNS gibt, die ich immer noch zu verstehen versuche, gibt es diese eine Frage, die ich bei google nicht beantworten konnte.

Wie automatisieren Sie die Bereitstellung einer DNX-Anwendung. Ich meine, kompilieren Sie Ihre Aspnet 5-App in ein nugget-Paket und stellen Sie es dann auf Ihrem Linux-Server wieder her (ich habe noch nie Linux verwendet, also nicht sicher, wie nuget dort funktioniert) und dnx-Befehl ausführen? Oder einfach zippen und es direkt auf den Server schieben?

Entschuldigung, das ist alles sehr neu für mich und meine Fragen klingen vielleicht dumm. Ich möchte nur wissen, wie ich die kontinuierliche Lieferung für meine asp.net 5-Anwendungen am besten implementieren kann. Mein Ziel ist es, meine Apps auf Linux-Containern zu hosten.

Antwort

4

Sie können dnu publish --runtime <name of runtime> --no-source verwenden. Dies erstellt einen Ordner mit Ihrer Anwendung, ihren Abhängigkeiten und der Laufzeitumgebung. Dann müssen Sie nur diesen Ordner auf Ihrem Server abrufen.

Wie Sie Dateien bewegen wirklich auf Ihr Szenario hängt ... Es könnte FTP sein, Lagerung, Kudu (wenn Sie auf Azure WebSites sind) usw.

Eine weitere Alternative auf der die Wiederherstellung zu tun ist, Server. Während dies die Größe der Anwendung beim Publizieren reduziert, müssen Sie Pakete auf dem Server wiederherstellen, die unsicher sein können, und es kann auch zu Anwendungsunterbrechungen kommen, da es neuere, inkompatible Pakete in den Feeds geben kann.

Während es keine richtige Antwort für alle gibt, fand ich, dass wenn Sie zuverlässigste und konsistente Ergebnisse wollen, sollten Sie mit allem veröffentlichen, lokal testen und dann nur das Bundle auf Ihrem Server kopieren.

Für Docker, empfehle ich das gleiche. Veröffentlichen Sie mit der Laufzeit und ohne Quellen und erstellen Sie einen Container mit dem resultierenden Ordner.

Verwandte Themen