From cb926b7cda3a460cc69acdb130804f2e80e2f183 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Thu, 11 Mar 2021 11:34:28 +0800 Subject: [PATCH] Fixed #171 bug --- Blog.Core.Api/Dockerfile | 3 +++ Dockerfile | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 Dockerfile diff --git a/Blog.Core.Api/Dockerfile b/Blog.Core.Api/Dockerfile index 52df635..2e25ef5 100644 --- a/Blog.Core.Api/Dockerfile +++ b/Blog.Core.Api/Dockerfile @@ -1,3 +1,6 @@ +#这种模式是先dotnet build后,然后再把dll进行构建镜像。 +#如果你想把这两步合在一起,可以看.sln根目录下的那个dockerfile。 + #FROM swr.cn-south-1.myhuaweicloud.com/mcr/aspnet:5.0-alpine #FROM mcr.microsoft.com/dotnet/core/aspnet:5.0-buster-slim FROM mcr.microsoft.com/dotnet/aspnet:5.0-buster-slim diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..e6719f2 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,35 @@ +#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging. + +#这种模式是直接在构建镜像的内部编译发布dotnet项目。 +#注意下容器内输出端口是8081 +#如果你想先手动dotnet build成可执行的二进制文件,然后再构建镜像,请看.Api层下的dockerfile。 + + +FROM mcr.microsoft.com/dotnet/aspnet:5.0-buster-slim AS base +WORKDIR /app +EXPOSE 80 + +FROM mcr.microsoft.com/dotnet/sdk:5.0-buster-slim AS build +WORKDIR /src +COPY ["Blog.Core.Api/Blog.Core.Api.csproj", "Blog.Core.Api/"] +COPY ["Blog.Core.Extensions/Blog.Core.Extensions.csproj", "Blog.Core.Extensions/"] +COPY ["Blog.Core.Tasks/Blog.Core.Tasks.csproj", "Blog.Core.Tasks/"] +COPY ["Blog.Core.IServices/Blog.Core.IServices.csproj", "Blog.Core.IServices/"] +COPY ["Blog.Core.Model/Blog.Core.Model.csproj", "Blog.Core.Model/"] +COPY ["Blog.Core.Common/Blog.Core.Common.csproj", "Blog.Core.Common/"] +COPY ["Blog.Core.Services/Blog.Core.Services.csproj", "Blog.Core.Services/"] +COPY ["Blog.Core.Repository/Blog.Core.Repository.csproj", "Blog.Core.Repository/"] +COPY ["Blog.Core.EventBus/Blog.Core.EventBus.csproj", "Blog.Core.EventBus/"] +RUN dotnet restore "Blog.Core.Api/Blog.Core.Api.csproj" +COPY . . +WORKDIR "/src/Blog.Core.Api" +RUN dotnet build "Blog.Core.Api.csproj" -c Release -o /app/build + +FROM build AS publish +RUN dotnet publish "Blog.Core.Api.csproj" -c Release -o /app/publish + +FROM base AS final +WORKDIR /app +COPY --from=publish /app/publish . +EXPOSE 8081 +ENTRYPOINT ["dotnet", "Blog.Core.Api.dll"] \ No newline at end of file