{"id":12205,"date":"2017-05-18T09:00:23","date_gmt":"2017-05-18T16:00:23","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/visualstudio\/?p=12205"},"modified":"2019-02-14T15:27:12","modified_gmt":"2019-02-14T23:27:12","slug":"continuous-delivery-tools-adds-support-for-containers","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/visualstudio\/continuous-delivery-tools-adds-support-for-containers\/","title":{"rendered":"Continuous Delivery Tools adds support for Containers"},"content":{"rendered":"<p>Last week at \/\/BUILD, the <a href=\"http:\/\/aka.ms\/CD4VS\">Continuous Delivery Tools for Visual Studio<\/a> shipped a new update. As always we are continuing to expand the extension\u2019s set of features guided by your feedback. The enthusiasm and feedback has validated just how much opportunity there is to help you continuously deliver value to your users. Apart from bug fixes, our latest update includes support for configuring a continuous delivery pipeline for solutions with Docker Compose to Azure App Service on Linux and Azure Service Fabric Cluster. We also introduced <a href=\"https:\/\/aka.ms\/CD4VS_Qualityblog1\">a new feature to help you improve your code quality<\/a>. On code commit, we now remind you of any code analysis issues that have not been addressed yet. Clicking on the error indicator will take you to the error list. This means you can take care of those issues before they propagate into your team\u2019s CI\/CD process, and commit with confidence. Click <a href=\"https:\/\/aka.ms\/CD4VS_Qualityblog1\">here<\/a> for another blog with more details about that feature.<\/p>\n<h2>Configuring Continuous Delivery to App Service on Linux<\/h2>\n<p>As we continue to expand support for container enabled solutions, you can now configure build and release definitions directly from within the IDE. <a href=\"https:\/\/azure.microsoft.com\/en-us\/blog\/app-service-on-linux-now-supports-containers-and-asp-net-core\/\">With support for ASP.NET core and containers<\/a>, Azure App Service on Linux is a solid viable environment for developers to get started with containers.<\/p>\n<p>To configure continuous delivery to App Service on Linux, create or open an existing solution with an ASP.NET Core project. Add Docker support to the project and ensure that the solution is under version control on Visual Studio Team Services (VSTS) or GitHub. Right click on the solution in Solution Explorer and select Configure Continuous Delivery.<\/p>\n<p><a target=\"_blank\" href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/4\/2019\/06\/Continuous-Delivery-Tools-Right-click-on-solution-in-Solution-Explorer-cropped.png\" rel=\"noopener noreferrer\"><img decoding=\"async\" title=\"Continuous Delivery Tools Right click on solution in Solution Explorer\" alt=\"Continuous Delivery Tools Right click on solution in Solution Explorer\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/4\/2019\/06\/Continuous-Delivery-Tools-Right-click-on-solution-in-Solution-Explorer-cropped.png\" width=\"615\" height=\"563\" class=\"\" \/><\/a><\/p>\n<p>Then, select App Service (Linux) as the Target Host type and an Azure App Service to act as a target for continuous delivery.<\/p>\n<p><a target=\"_blank\" href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/4\/2019\/06\/Continuous-Delivery-Tools-Configure-CD-to-App-Service-Linux.png\" rel=\"noopener noreferrer\"><img decoding=\"async\" title=\"Configure Continuous Delivery Tools to App Service Linux\" alt=\"Configure Continuous Delivery Tools to App Service Linux\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/4\/2019\/06\/Continuous-Delivery-Tools-Configure-CD-to-App-Service-Linux.png\" width=\"713\" height=\"475\" class=\"\" \/><\/a><\/p>\n<p>To ensure a successful CI build, update the .dockerignore file in the ASP.NET Core project to remove the \u201c*\u201d entry. You also need to update the docker file in the ASP.NET project to copy the required assets to the publish folder and update the correct entry point for the application assembly:<\/p>\n<table cellspacing=\"0\" cellpadding=\"2\" width=\"1611\" border=\"0\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"1609\">\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 0pt;line-height: normal\"><span style=\"font-family: Consolas\"><span><span style=\"color: #0000ff\"><span style=\"font-size: 9.5pt\">FROM<\/span><\/span><\/span><span><span style=\"font-size: 9.5pt\"> microsoft\/aspnetcore-build:1.0-1.1<\/span><\/span><\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 0pt;line-height: normal\"><span><span style=\"font-family: Consolas\"><span style=\"font-size: 9.5pt\">EXPOSE 80<\/span><\/span><\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 0pt;line-height: normal\"><span><span style=\"font-family: Consolas\"><span style=\"font-size: 9.5pt\">WORKDIR \/app<\/span><\/span><\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 0pt;line-height: normal\"><span><span style=\"font-family: Consolas\"><span style=\"font-size: 9.5pt\">COPY . .<\/span><\/span><\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 0pt;line-height: normal\"><span style=\"font-family: Consolas\"><span><span style=\"font-size: 9.5pt\">RUN \/bin\/bash -c <\/span><\/span><span><span style=\"font-size: 9.5pt;color: #a31515\">&#8220;dotnet restore &amp;&amp; dotnet publish -c Release -o .\/obj\/Docker\/publish&#8221;<\/span><\/span><\/span><span><\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 0pt;line-height: normal\"><span><span style=\"font-family: Consolas\"><span style=\"font-size: 9.5pt\">WORKDIR \/app\/obj\/Docker\/publish<\/span><\/span><\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 8pt;line-height: 12pt\"><span style=\"font-family: Consolas\"><span style=\"line-height: 10pt\"><span style=\"font-size: 9.5pt\">ENTRYPOINT [<\/span><\/span><span style=\"font-size: 9.5pt\"><span style=\"line-height: 10pt\"><span style=\"color: #a31515\">&#8220;dotnet&#8221;<\/span><\/span><span style=\"line-height: 10pt\">, <\/span><\/span><span style=\"line-height: 10pt\"><span style=\"font-size: 9.5pt;color: #a31515\">&#8220;<\/span><\/span><\/span><span><span style=\"background-color: #ffff00;color: #ff0000\">&lt;&lt;Assembly Name&gt;&gt;<\/span><\/span><span style=\"font-family: Consolas\"><span style=\"line-height: 10pt\"><span style=\"color: #a31515\"><span style=\"font-size: 9.5pt\">.dll&#8221;<\/span><\/span><\/span><span style=\"line-height: 10pt\"><span style=\"font-size: 9.5pt\">]<\/span><\/span><\/span><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Configuring Continuous Delivery to Service Fabric Cluster<\/h2>\n<p>Apart from App Service on Linux, you can also configure continuous delivery to Service Fabric Clusters. To configure continuous delivery to a service fabric cluster, first you need to <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/service-fabric\/service-fabric-cluster-creation-via-portal\">create one<\/a> on Azure. If you configured an existing Service Fabric Cluster on Azure, make sure that you install the cluster certificate on your development machine with the exportable key option checked.<\/p>\n<p><a target=\"_blank\" href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/4\/2019\/06\/Continuous-Delivery-Tools-Configure-CD-to-Service-Fabric-Cluster.png\" rel=\"noopener noreferrer\"><img decoding=\"async\" title=\"Configure Continuous Delivery Tools to Service Fabric Cluster\" alt=\"Configure Continuous Delivery Tools to Service Fabric Cluster\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/4\/2019\/06\/Continuous-Delivery-Tools-Configure-CD-to-Service-Fabric-Cluster.png\" width=\"713\" height=\"441\" class=\"\" \/><\/a><\/p>\n<p>When configuring continuous delivery to Service Fabric you will need to enter the password for the cluster certificate and select an existing Azure Container registry. The release task uses the cluster certificate and password to connect to the cluster while deploying to it.<\/p>\n<h2>Configuring Continuous Delivery to Azure Container Services<\/h2>\n<p>We recently, removed support for Azure Container Services from the extension. We are redesigning our support for Azure Container services and will update the extension soon to include support for Kubernetes Containers.<\/p>\n<h2>Please keep the feedback coming!<\/h2>\n<p>Thank you to everyone who has reached out and shared feedback and ideas so far. We\u2019re always looking for feedback on where to take this <a href=\"https:\/\/blogs.msdn.microsoft.com\/somasegar\/2013\/02\/19\/the-evolution-of-devlabs\/\">Microsoft DevLabs extension<\/a> next. There\u2019s a <a>Slack channel<\/a> and a team alias <a>vsdevops@microsoft.com<\/a> where you can reach out to the team and others in the community sharing ideas on this topic.<\/p>\n<table cellspacing=\"0\" cellpadding=\"2\" width=\"600\" border=\"0\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"150\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/4\/2019\/06\/Ahmed-Metwally1.jpg\" width=\"127\" height=\"190\" class=\"\" \/><\/td>\n<td valign=\"top\" width=\"450\"><strong>Ahmed Metwally<\/strong>, Senior PM, Visual Studio\n@cd4vs (<a href=\"https:\/\/twitter.com\/cd4vs)\">https:\/\/twitter.com\/cd4vs)<\/a><\/p>\n<p>Ahmed is a Program Manager on the Visual Studio Platform team focused on improving team collaboration and application lifecycle management integration.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n","protected":false},"excerpt":{"rendered":"<p>Last week at \/\/BUILD, the Continuous Delivery Tools for Visual Studio shipped a new update. As always we are continuing to expand the extension\u2019s set of features guided by your feedback. The enthusiasm and feedback has validated just how much opportunity there is to help you continuously deliver value to your users. Apart from bug [&hellip;]<\/p>\n","protected":false},"author":13,"featured_media":255385,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1085,472,155,1029],"tags":[237,85,242,454,477,1046,182,156],"class_list":["post-12205","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cloud","category-gaming","category-visual-studio","category-web","tag-net","tag-asp-net","tag-azure","tag-cicd","tag-kubernetes","tag-service-fabric","tag-unity","tag-visual-studio-2017"],"acf":[],"blog_post_summary":"<p>Last week at \/\/BUILD, the Continuous Delivery Tools for Visual Studio shipped a new update. As always we are continuing to expand the extension\u2019s set of features guided by your feedback. The enthusiasm and feedback has validated just how much opportunity there is to help you continuously deliver value to your users. Apart from bug [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts\/12205","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/comments?post=12205"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts\/12205\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/media\/255385"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/media?parent=12205"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/categories?post=12205"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/tags?post=12205"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}