Tag: .net

与docker的dotnet核心2

我正在尝试使用基于microsofts dokumentation的docker运行dotnet core 2( https://github.com/dotnet/dotnet-docker-samples/tree/master/aspnetapp ): 我的Dockerfile看起来像这样: FROM microsoft/aspnetcore-build:2.0.0 AS build-env WORKDIR /app # copy csproj and restore as distinct layers COPY *.csproj ./ RUN dotnet restore # copy everything else and build COPY . ./ RUN dotnet publish -c Release -o out # build runtime image FROM microsoft/aspnetcore:2.0.0 WORKDIR /app COPY –from=build-env /app/out . […]

在Docker容器中运行不可信的.net核心应用程序的最佳实践

比方说,我想运行一个docker集装箱内的一些第三方.net核心应用程序,我不完全信任。 为了简化,假设应用程序是由dotnet new生成的简单的Hello World控制台应用程序。 这只是2个文件Program.cs和project.json 。 现在我已经尝试了以下方法: 将该应用程序复制到我的主机的某个文件夹 使用microsoft / dotnet映像创build一个新的容器,将该文件夹挂载为一个卷,运行特定命令来构build和运行该应用程序: $ docker run –rm -it –name dotnet \ -v /some/temp/folder/app:/app \ microsoft/dotnet:latest \ /bin/sh -c 'cd /app && dotnet restore && dotnet run' 我也在考虑将预定义的dockerfile与microsoft / dotnet作为基本映像。 它将基本embedded应用程序代码,将其设置为工作目录并运行恢复,构build和运行命令。 FROM microsoft/dotnet:latest COPY . /app WORKDIR /app RUN ["dotnet", "restore"] RUN ["dotnet", "build"] ENTRYPOINT ["dotnet", "run"] 然后,我可以将预定义的dockerfile复制到临时文件夹中,为特定的应用程序构build一个新的映像,最后使用该映像运行一个新的容器。 […]

单声道TLS1.2问题 – btls-cert-sync“命令未find”

概要: 我的公司使用TargetProcess(TP)来跟踪开放项目的进度,并且创build了一小段代码来将更新导入TargetProcess。 目前在构build提交时,我们启动了一个预装了Mono的debian docker镜像,并运行我们的小型.NET(C#)程序将我们的更新连接到TP。 摄制: 看来TP最近更新了它们的API,只接受TLS1.2连接,所以我们不得不用Mono 4.8(Alpha通道)创build一个新的Docker镜像(根据这篇文章 )。 在Docker镜像中安装这个新的Mono程序仍然不能解决这个问题,所以我们采取了几个步骤:(在Mono的安全常见问题解答的提示之后) // Made sure that the most current version ca-certificates-mono is installed // and it seems to have been installed upon installation of mono 4.8 apt-get install ca-certificates-mono // This should be an unnecessary step from what I read, but ran anyway cert-sync /etc/ssl/certs/ca-certificates.crt // lastly btls-cert-sync […]

VS 2017添加> Docker支持rest生成 – “CleanWorkspace”任务意外失败(控制台应用程序)

首先我使用.NET 4.6.1。 与VS 2017的Docker不能用于.NET Core吗? 我使用了上下文菜单中的新增functionAdd > Docker Support ,并创build了一堆文件。 这里是我的Dockerfile(自动创build以来没有触及它): FROM microsoft/windowsservercore ARG source WORKDIR /app COPY ${source:-obj/Docker/publish} . ENTRYPOINT ["C:\app\nameofmyapp.exe"] 当我build立时,我得到以下错误: “CleanWorkspace”任务意外失败。 Microsoft.DotNet.Docker.CommandLineClientException:撰写文件'… \ docker-compose.yml'是无效的,因为:services.pas.parsemicroservice.build.context包含null,这是一个无效types,它应该是一个string。 这是我的docker-compose.yml文件: version: '2.1' services: pas.parsemicroservice: image: pas.parsemicroservice build: context: dockerfile: Dockerfile 如果我添加一个. 上下文(因为错误意味着null问题),我得到一个不同的错误: 涉及目标“DockerCleanServiceReferences”的目标依赖关系图中存在循环依赖关系。 这是所有使用错误的.NET框架的结果,还是我的文件设置错了? (我确实是一个Docker n00b)

在Jenkins上构build和部署Docker需要越来越多的时间

我在一个在Jenkins中构build和部署的Docker容器中运行了一个小的.NET Core Web应用程序。 docker存储库通过docker托pipe。 最初,花费不到一分钟的时间来构build和部署容器。 但是随着时间的推移,每一次构build和部署都花费了越来越多的时间,现在已经达到了一个多小时。 这里有一些从日志开始有希望的相关部分: 从git中检出版本库: … + ./build.sh + REPO=quay.io/my/dir + IMAGE=quay.io/my/dir:dddaca1fd347b1fabea342a6a65431b68f793ad4 + docker pull quay.io/my/dir Using default tag: latest latest: Pulling from my/dir Digest: sha256:9a654ad205764a668c1fc531c0972d1273b0920dc8282a8c7b6498482cee7975 Status: Image is up to date for quay.io/my/dir:latest + docker build -t quay.io/my/dir:dddaca1fd347b1fabea342a6a65431b68f793ad4 . Sending build context to Docker daemon 121.9 kB Sending build context to […]

在Windows Server Core Docker上安装.NET Framework 3.5

我正努力在Docker容器上安装.NET Framework 3.5。 我已经安装了4.5,但需要3.5来运行一个服务。 这是我的Dockerfile: FROM microsoft/windowsservercore SHELL ["powershell"] RUN Install-WindowsFeature NET-Framework-45-ASPNET ; \ Install-WindowsFeature Web-Asp-Net45 RUN dism /online /enable-feature /featurename:NetFX3 /all COPY Startup Startup COPY Service Service RUN "C:\Windows\Microsoft.NET\Framework\v4.0.30319\installutil.exe" WCS.WindowsService.exe RUN mkdir Temp\Logs ENTRYPOINT C:\Startup\setupBatch.bat COPY ContainerApi ContainerApi RUN Remove-WebSite -Name 'Default Web Site' RUN New-Website -Name 'ContainerApi' -Port 80 \ -PhysicalPath 'C:\ContainerApi' -ApplicationPool […]

.NET Core SDK与Docker的运行时版本

我正在构build一个ASP.NET Core 2.0应用程序。 我的机器正在运行我认为是最新的SDK和运行时: 2.0.0-preview2-006497-preview2 $ dotnet –version 2.0.0-preview2-006497 但是,当我构build并尝试运行Docker镜像时,我得到: It was not possible to find any compatible framework version The specified framework 'Microsoft.NETCore.App', version '2.0.0-preview2-25407-01' was not found. – Check application dependencies and target a framework version installed at: / – Alternatively, install the framework version '2.0.0-preview2-25407-01'. 如果我直接运行基础Docker镜像,我发现它报告版本2.0.0 (不预览)作为版本: $ sudo docker run -it […]

Docker没有托pipe它所说的端口上的任何东西,这是怎么回事?

我正在通过这篇博客文章解释如何通过Docker在.net核心上托pipe示例ServiceStack应用程序。 在命令行中我看到: 现在正在监听:https:// *:5000 但是如下面的屏幕截图所示,没有东西似乎托pipe在本地主机端口5000上。 我已经在我的Mac和PC上试过了,结果是一样的。 我是全新的Docker,所以我认为这是明显的东西,所以对于noob问题,我很抱歉! 谢谢

在涉及目标“DockerBuildServiceReferences”的目标依赖关系图中存在循环依赖关系

我正在尝试将docker支持添加到现有的ASP.Net(Core)Web应用程序。 到目前为止,我所做的只是右键单击我的解决scheme,然后单击Add > Docker Support 。 当我然后尝试使用docker开始debugging时,我得到以下错误: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\VisualStudio\v15.0\Docker\Microsoft.VisualStudio.Docker.Compose.targets(170,5): error MSB4006: There is a circular dependency in the target dependency graph involving target "DockerBuildServiceReferences". 我已经检查了Microsoft.VisualStudio.Docker.Compose.targets文件,我看不到涉及DockerBuildServiceReferences任何循环依赖,实际上只search整个文件,只是在两个地方提到: <!– *********************************************************************************************** Docker Compose Project Targets *********************************************************************************************** –> <UsingTask TaskName="CleanWorkspace" AssemblyFile="$(DockerBuildTasksAssembly)" /> <UsingTask TaskName="EnsureMsVsMonExists" AssemblyFile="$(DockerBuildTasksAssembly)" /> <UsingTask TaskName="EnsureVsDbgExists" AssemblyFile="$(DockerBuildTasksAssembly)" /> <UsingTask TaskName="GetServiceReferences" AssemblyFile="$(DockerBuildTasksAssembly)" /> <UsingTask TaskName="PrepareForBuild" AssemblyFile="$(DockerBuildTasksAssembly)" […]

错误必须提供“ClientId”选项。 当build立一个docker形象

我已经开始了一个新的.net核心项目,并将其configuration为使用Google+ Api进行身份validation。 我的客户端ID和秘密使用dotnet用户秘密进行存储。 当我build立我的docker形象,我得到 Unhandled Exception: System.ArgumentException: The 'ClientId' option must be provided. 我知道这是因为我的秘密没有提供给图像。 我想知道的是我怎样才能提供我的ID和密钥,而不提交他们的存储库,仍然在本地运行我的形象。 我在想,当我把它部署到服务器时,我可以将它们作为Envvariables的一部分,我想我也可以在本地执行这个操作,只是想知道是否有其他人有解决scheme,可能比我的更优雅。 我只是无法find其他人如何做这件事的信息。