簡體   English   中英

如何使用VSTS在Docker上配置ASPNET Core以使用單元測試和環境變量構建,運行測試並部署到Azure

[英]How to configure ASPNET Core with Docker using VSTS to build, run tests and deploy to Azure with Unit Tests and Environment Variables

我正在嘗試做一些我認為微不足道的事情,但是顯然這很困難。 是的,在整個堆棧溢出中都有點點滴滴,但它們要么過時,要么實際上不起作用。

  1. 我有一個使用add / docker / linux命令進行泊塢處理的asp.net核心站點。
  2. 在VSTS中,我可以構建映像並將其與2個docker-compose項一起發布。
  3. 然后,我可以使用發布管理來發布映像。

我不知道怎么做:

  1. 在我的圖像上運行dotnet測試,並將結果報告給VSTS
  2. 在運行時,Azure App Service容器上的設置環境變量會正確傳遞到映像中。

在#1上,我找不到任何有關如何進行設置的最新文檔,因此除非明確指定,否則開發單元測試不會運行(並且如果我告訴它在Visual Studio中運行測試,則它們應在Visual Studio中運行)。 docker image!我可以讓它們始終運行,但是如果每次您開始調試時都運行它們,那將浪費時間。

而且我無法弄清楚如何僅通過docker run命令使用docker-compose或新的VS.net 2017 15.8方式來運行測試。 在我看來,我只需要一個新的dockerfile即可運行測試,並使其生成,然后丟棄所創建的映像。 但是我不知道該怎么做,即使這是正確的方法。

應該如何設置進行單元測試? (我瀏覽了5頁的Google搜索結果,但都無法正常工作。)

在#2上,App Service中的設置和應用程序設置不會在docker run中傳遞值。 我已經嘗試了所有方法,但它們從未通過。 如何在Azure上傳遞環境變量,以便run命令獲得正確的-e參數?

對於#1,您可以使用dotnet test命令。 這將生成一個.trx文件,VSTS可以選擇該文件並呈現一個不錯的測試報告。 您只需要設置“發布測試結果”任務。

dotnet test --logger trx --results-directory /var/temp

更多詳細信息,請查看此博客: 使用Visual Studio Team Services和Docker Compose運行單元測試

如果要覆蓋VSTS上的環境變量值並使用Azure App Service Container上的值,則For#2並非完全正確。 請通過Powershell腳本嘗試以下解決方案: 如何在VSTS任務上覆蓋環境變量的值

除了建議您還瀏覽該博客,還介紹了如何使用VSTS(包括CI和CD )將 Docker 部署到Azure應用服務(Linux) 這可能對您有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM