在我的解决方案中,我使用了 docker。 当我尝试构建图像时,每次都会收到错误:
将构建上下文发送到 Docker 守护进程 77.32MB
Step 1/16 : FROM mcr.microsoft.com/dotnet/core/aspnet:3.1 AS base
---> 014a41b1f39a
Step 2/16 : WORKDIR /app
---> Using cache
---> c3eb79db5e63
Step 3/16 : EXPOSE 80
---> Using cache
---> f23ddd06f8f8
Step 4/16 : FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
---> 006ded9ddf29
Step 5/16 : WORKDIR /src
---> Using cache
---> d8016eaadf87
Step 6/16 : COPY ["ProductCatalogApi.csproj", "src/Services/ProductCatalogApi/"]
---> 59d2cc3f4102
Step 7/16 : RUN dotnet restore "src/Services/ProductCatalogApi/ProductCatalogApi.csproj"
---> Running in 347a48e8ef6f
Determining projects to restore...
Retrying 'FindPackagesByIdAsync' for source 'https://api.nuget.org/v3-flatcontainer/system.resources.resourcemanager/index.json'.
The SSL connection could not be established, see inner exception.
Received an unexpected EOF or 0 bytes from the transport stream.
Failed to download package 'System.IO.Compression.ZipFile.4.3.0' from 'https://api.nuget.org/v3-flatcontainer/system.io.compression.zipfile/4.3.0/system.io.compression.zipfile.4.3.0.nupkg'.
The command '/bin/sh -c dotnet restore "src/Services/ProductCatalogApi/ProductCatalogApi.csproj"' returned a non-zero code: 1
Dockerfile 有下一个代码:
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1 AS base
WORKDIR /app
EXPOSE 80
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
WORKDIR /src
COPY ["src/Services/ProductCatalogApi/ProductCatalogApi.csproj", "src/Services/ProductCatalogApi/"]
RUN dotnet restore "src/Services/ProductCatalogApi/ProductCatalogApi.csproj"
COPY . .
WORKDIR "/src/Services/ProductCatalogApi"
RUN dotnet build "ProductCatalogApi.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "ProductCatalogApi.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "ProductCatalogApi.dll"]
我的.csproj 文件:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<RootNamespace>ShoesOnContainers.Services.ProductCatalogApi</RootNamespace>
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
<DockerfileContext>..\..\..</DockerfileContext>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.1.5" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="3.1.5" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.5" />
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.9.10" />
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.9.10" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="3.1.3" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="5.5.1" />
</ItemGroup>
</Project>
我一整天都在尝试通过其他方式建立我的形象,每次我收到错误时。请帮助某人......
我也遇到了同样的错误,我尝试了这个并且成功了。
docker stop $(docker ps -aq)
docker rm $(docker ps -aq)
。docker volume rm $(docker volume ls -q)
docker rmi -f $(docker images -a -q)
src
目录并使用 docker-compose build
再次构建所有图像,然后使用 docker-compose up
!重要请注意,上述命令将清除所有 该环境中的 docker 相关实例。所以不推荐 在任何生产环境或任何其他环境上运行它们 任何其他应用程序的 docker 实例正在运行的地方。
如果您的互联网连接速度较慢,请查看:https://github.com/Abdulrhman5/nupkgInDocker这将在您的计算机上创建并运行一个 NuGet 服务器,该服务器将为缓存在您的计算机上的 Nuget 包提供服务在 C:\Users\YourUserName.nuget\packages 中。