Опубликовать предварительный просмотр ASP.Net Core 3 6 в Azure - PullRequest
3 голосов
/ 01 июля 2019

Я пытаюсь разработать веб-приложение, используя AspNetCore3 preview6.19307.2, и хочу опубликовать его в своем веб-приложении Azure.

Я не первый раз пытаюсь опубликовать предварительную версию AspNetCore 3. По неизвестной причине не могу.Приложение WebApp сообщило мне, что оно не может запуститься (Внутренняя ошибка сервера).

В консоли Kudu, когда я пробую AspNetCore3 Preview5, я устанавливаю ASP.NET Core 3.0 (x64) Runtime (версия 3.0.0-preview5-19227-01).

Теперь, начиная с Preview6,Расширение для этого выпуска не существует.

Поэтому я попытался использовать приложение в Docker.

Я попытался использовать несколько файлов Docker, в том числе:

Сгенерировано Visual Studio:

FROM mcr.microsoft.com/dotnet/core/runtime:3.0-buster-slim-arm64v8 AS base
WORKDIR /app
EXPOSE 80

# Install ASP.NET Core
ENV ASPNETCORE_VERSION 3.0.0-preview6.19307.2

FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build
WORKDIR /src
COPY ["IdeaStudio.Web.Server/IdeaStudio.Web.Server.csproj", "IdeaStudio.Web.Server/"]
COPY ["IdeaStudio.Web.Client/IdeaStudio.Web.Client.csproj", "IdeaStudio.Web.Client/"]
COPY ["IdeaStudio.Web.Shared/IdeaStudio.Web.Shared.csproj", "IdeaStudio.Web.Shared/"]
RUN dotnet restore "IdeaStudio.Web.Server/IdeaStudio.Web.Server.csproj"
COPY . .
WORKDIR "/src/IdeaStudio.Web.Server"
RUN dotnet build "IdeaStudio.Web.Server.csproj" -c Release -o /app

FROM build AS publish
RUN dotnet publish "IdeaStudio.Web.Server.csproj" -c Release -o /app

FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "IdeaStudio.Web.Server.dll"]

Первый журнал:

1>------ Build started: Project: IdeaStudio.Web.Server, Configuration: Debug Any CPU ------
...
1>docker run -dt -v "C:\Users\andre\vsdbg\vs2017u5:/remote_debugger:rw" -v "D:\Repos\IdeaStudio.Web\IdeaStudio.Web.Server:/app" -v "C:\Users\andre\.nuget\packages\:/root/.nuget/fallbackpackages3" -v "C:\Microsoft\Xamarin\NuGet\:/root/.nuget/fallbackpackages" -v "C:\Program Files\dotnet\sdk\NuGetFallbackFolder:/root/.nuget/fallbackpackages2" -e "DOTNET_USE_POLLING_FILE_WATCHER=1" -e "ASPNETCORE_ENVIRONMENT=Development" -e "NUGET_PACKAGES=/root/.nuget/fallbackpackages3" -e "NUGET_FALLBACK_PACKAGES=/root/.nuget/fallbackpackages;/root/.nuget/fallbackpackages2;/root/.nuget/fallbackpackages3" -p 50793:80 --entrypoint tail ideastudiowebserver:dev -f /dev/null
1>259a71fe9c5e97288455ce841990821bcc4745ac11016b140e36950a6a49e1a3
1>docker: Error response from daemon: driver failed programming external connectivity on endpoint amazing_cocks (56655f71f121511a010d160258f20026756cf13a08014626064fdebc94709c1d): Error starting userland proxy: mkdir /port/tcp:0.0.0.0:50793:tcp:172.17.0.2:80: input/output error.
1>C:\Users\andre\.nuget\packages\microsoft.visualstudio.azure.containers.tools.targets\1.7.11\build\Container.targets(196,5): error CTP1002: An error occurred while attempting to run Docker container.

Обновление 1

В своей последней попытке я пытался с VSCode и терминалом: docker build -t ideastudio -f Dockerfile .

У меня есть другая ошибка:

error MSB6003: The specified task executable "node" could not be run. System.ComponentModel.Win32Exception (2): No such file or directory [/src/IdeaStudio.Web.Client/IdeaStudio.Web.Client.csproj]

Изначально мой DOCKERFILE был добавлен в папку /src/Ideatudio.Web.Server.До этого сообщения дерево моих файлов выглядело как

- IdeaStudio.Web.Client\ (csproj and files)
- IdeaStudio.Web.Server\ (csproj and files)
    - DOCKERFILE
- IdeaStudio.Web.Shared\...

После:

- IdeaStudio.Web.Client\ (csproj and files)
- IdeaStudio.Web.Server\ (csproj and files)
- IdeaStudio.Web.Shared\...
- DOCKERFILE

У меня такая же ошибка ...

Обновление 2

Я восстановил исходную версию файла Docker (сгенерированного Visual Studio) в D:\repos\IdeaStudio.Web\src\IdeaStudio.Web.Server\DOCKERFILE:

FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS base
WORKDIR /app
EXPOSE 80

FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build
WORKDIR /src
COPY ["IdeaStudio.Web.Server/IdeaStudio.Web.Server.csproj", "IdeaStudio.Web.Server/"]
COPY ["IdeaStudio.Web.Client/IdeaStudio.Web.Client.csproj", "IdeaStudio.Web.Client/"]
COPY ["IdeaStudio.Web.Shared/IdeaStudio.Web.Shared.csproj", "IdeaStudio.Web.Shared/"]
RUN dotnet restore "IdeaStudio.Web.Server/IdeaStudio.Web.Server.csproj"
COPY . .
WORKDIR "/src/IdeaStudio.Web.Server"
RUN dotnet build "IdeaStudio.Web.Server.csproj" -c Release -o /app

FROM build AS publish
RUN dotnet publish "IdeaStudio.Web.Server.csproj" -c Release -o /app

FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "IdeaStudio.Web.Server.dll"]

Мои журналы:

D:\Repos\IdeaStudio.Web\src\IdeaStudio.Web.Server>docker build -t ideastudioserver -f Dockerfile .
Sending build context to Docker daemon  3.224MB
Step 1/18 : FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS base
 ---> 535a4f32905a
Step 2/18 : WORKDIR /app
 ---> Running in c949c41906a2
Removing intermediate container c949c41906a2
 ---> 7e4f125c7680
Step 3/18 : EXPOSE 80
 ---> Running in 78304b88cdeb
Removing intermediate container 78304b88cdeb
 ---> b3498af84ab1
Step 4/18 : FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build
 ---> 1fe3bc74dd1b
Step 5/18 : WORKDIR /src
 ---> Using cache
 ---> ac9cfd234501
Step 6/18 : COPY ["IdeaStudio.Web.Server/IdeaStudio.Web.Server.csproj", "IdeaStudio.Web.Server/"]
COPY failed: stat /var/lib/docker/tmp/docker-builder106022311/IdeaStudio.Web.Server/IdeaStudio.Web.Server.csproj: no such file or directory

Когда я переместил его вD:\repos\IdeaStudio.Web\src\DOCKERFILE:

D:\Repos\IdeaStudio.Web\src>docker build -t ideastudioserver -f Dockerfile .
Sending build context to Docker daemon  48.93MB
Step 1/18 : FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS base
 ---> 535a4f32905a
Step 2/18 : WORKDIR /app
 ---> Using cache
 ---> 7e4f125c7680
Step 3/18 : EXPOSE 80
 ---> Using cache
 ---> b3498af84ab1
Step 4/18 : FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build
 ---> 1fe3bc74dd1b
Step 5/18 : WORKDIR /src
 ---> Using cache
 ---> ac9cfd234501
Step 6/18 : COPY ["IdeaStudio.Web.Server/IdeaStudio.Web.Server.csproj", "IdeaStudio.Web.Server/"]
 ---> c258e7588817
Step 7/18 : COPY ["IdeaStudio.Web.Client/IdeaStudio.Web.Client.csproj", "IdeaStudio.Web.Client/"]
 ---> 73d1ce9fcd0a
Step 8/18 : COPY ["IdeaStudio.Web.Shared/IdeaStudio.Web.Shared.csproj", "IdeaStudio.Web.Shared/"]
 ---> fb4cdea5ed62
Step 9/18 : RUN dotnet restore "IdeaStudio.Web.Server/IdeaStudio.Web.Server.csproj"
 ---> Running in f7452d7650cf
  Restore completed in 5.7 sec for /src/IdeaStudio.Web.Client/IdeaStudio.Web.Client.csproj.
  Restore completed in 4.23 ms for /src/IdeaStudio.Web.Shared/IdeaStudio.Web.Shared.csproj.
  Restore completed in 6.17 sec for /src/IdeaStudio.Web.Server/IdeaStudio.Web.Server.csproj.
Removing intermediate container f7452d7650cf
 ---> 5720a6dea18d
Step 10/18 : COPY . .
 ---> 86ef33c9acaf
Step 11/18 : WORKDIR "/src/IdeaStudio.Web.Server"
 ---> Running in a2581bbcbece
Removing intermediate container a2581bbcbece
 ---> be52c244051d
Step 12/18 : RUN dotnet build "IdeaStudio.Web.Server.csproj" -c Release -o /app
 ---> Running in e43ee85a4a35
Microsoft (R) Build Engine version 16.2.0-preview-19278-01+d635043bd for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.

  Restore completed in 25.27 ms for /src/IdeaStudio.Web.Server/IdeaStudio.Web.Server.csproj.
  Restore completed in 24.18 ms for /src/IdeaStudio.Web.Client/IdeaStudio.Web.Client.csproj.
  Restore completed in 0.65 ms for /src/IdeaStudio.Web.Shared/IdeaStudio.Web.Shared.csproj.
/usr/share/dotnet/sdk/3.0.100-preview6-012264/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.RuntimeIdentifierInference.targets(158,5): message NETSDK1057: You are using a preview version of .NET Core. See: https://aka.ms/dotnet-core-preview [/src/IdeaStudio.Web.Server/IdeaStudio.Web.Server.csproj]
/usr/share/dotnet/sdk/3.0.100-preview6-012264/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.RuntimeIdentifierInference.targets(158,5): message NETSDK1057: You are using a preview version of .NET Core. See: https://aka.ms/dotnet-core-preview [/src/IdeaStudio.Web.Shared/IdeaStudio.Web.Shared.csproj]
  IdeaStudio.Web.Shared -> /app/IdeaStudio.Web.Shared.dll
/root/.nuget/packages/microsoft.typescript.msbuild/3.5.2/tools/Microsoft.TypeScript.targets(543,5): error MSB6003: The specified task executable "node" could not be run. System.ComponentModel.Win32Exception (2): No such file or directory [/src/IdeaStudio.Web.Client/IdeaStudio.Web.Client.csproj]
/root/.nuget/packages/microsoft.typescript.msbuild/3.5.2/tools/Microsoft.TypeScript.targets(543,5): error MSB6003:    at System.Diagnostics.Process.ForkAndExecProcess(String filename, String[] argv, String[] envp, String cwd, Boolean redirectStdin, Boolean redirectStdout, Boolean redirectStderr, Boolean 
setCredentials, UInt32 userId, UInt32 groupId, UInt32[] groups, Int32& stdinFd, Int32& stdoutFd, Int32& stderrFd, Boolean usesTerminal, Boolean throwOnNoExec) [/src/IdeaStudio.Web.Client/IdeaStudio.Web.Client.csproj]
/root/.nuget/packages/microsoft.typescript.msbuild/3.5.2/tools/Microsoft.TypeScript.targets(543,5): error MSB6003:    at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo) [/src/IdeaStudio.Web.Client/IdeaStudio.Web.Client.csproj]
/root/.nuget/packages/microsoft.typescript.msbuild/3.5.2/tools/Microsoft.TypeScript.targets(543,5): error MSB6003:    at System.Diagnostics.Process.Start() [/src/IdeaStudio.Web.Client/IdeaStudio.Web.Client.csproj]
/root/.nuget/packages/microsoft.typescript.msbuild/3.5.2/tools/Microsoft.TypeScript.targets(543,5): error MSB6003:    at Microsoft.Build.Utilities.ToolTask.ExecuteTool(String pathToTool, String responseFileCommands, String commandLineCommands) [/src/IdeaStudio.Web.Client/IdeaStudio.Web.Client.csproj]    
/root/.nuget/packages/microsoft.typescript.msbuild/3.5.2/tools/Microsoft.TypeScript.targets(543,5): error MSB6003:    at TypeScript.Tasks.VsTsc.ExecuteTool(String pathToTool, String responseFileCommands, String commandLineCommands) [/src/IdeaStudio.Web.Client/IdeaStudio.Web.Client.csproj]
/root/.nuget/packages/microsoft.typescript.msbuild/3.5.2/tools/Microsoft.TypeScript.targets(543,5): error MSB6003:    at Microsoft.Build.Utilities.ToolTask.Execute() [/src/IdeaStudio.Web.Client/IdeaStudio.Web.Client.csproj]

Build FAILED.

/root/.nuget/packages/microsoft.typescript.msbuild/3.5.2/tools/Microsoft.TypeScript.targets(543,5): error MSB6003: The specified task executable "node" could not be run. System.ComponentModel.Win32Exception (2): No such file or directory [/src/IdeaStudio.Web.Client/IdeaStudio.Web.Client.csproj]
/root/.nuget/packages/microsoft.typescript.msbuild/3.5.2/tools/Microsoft.TypeScript.targets(543,5): error MSB6003:    at System.Diagnostics.Process.ForkAndExecProcess(String filename, String[] argv, String[] envp, String cwd, Boolean redirectStdin, Boolean redirectStdout, Boolean redirectStderr, Boolean 
setCredentials, UInt32 userId, UInt32 groupId, UInt32[] groups, Int32& stdinFd, Int32& stdoutFd, Int32& stderrFd, Boolean usesTerminal, Boolean throwOnNoExec) [/src/IdeaStudio.Web.Client/IdeaStudio.Web.Client.csproj]
/root/.nuget/packages/microsoft.typescript.msbuild/3.5.2/tools/Microsoft.TypeScript.targets(543,5): error MSB6003:    at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo) [/src/IdeaStudio.Web.Client/IdeaStudio.Web.Client.csproj]
/root/.nuget/packages/microsoft.typescript.msbuild/3.5.2/tools/Microsoft.TypeScript.targets(543,5): error MSB6003:    at System.Diagnostics.Process.Start() [/src/IdeaStudio.Web.Client/IdeaStudio.Web.Client.csproj]
/root/.nuget/packages/microsoft.typescript.msbuild/3.5.2/tools/Microsoft.TypeScript.targets(543,5): error MSB6003:    at Microsoft.Build.Utilities.ToolTask.ExecuteTool(String pathToTool, String responseFileCommands, String commandLineCommands) [/src/IdeaStudio.Web.Client/IdeaStudio.Web.Client.csproj]    
/root/.nuget/packages/microsoft.typescript.msbuild/3.5.2/tools/Microsoft.TypeScript.targets(543,5): error MSB6003:    at TypeScript.Tasks.VsTsc.ExecuteTool(String pathToTool, String responseFileCommands, String commandLineCommands) [/src/IdeaStudio.Web.Client/IdeaStudio.Web.Client.csproj]
/root/.nuget/packages/microsoft.typescript.msbuild/3.5.2/tools/Microsoft.TypeScript.targets(543,5): error MSB6003:    at Microsoft.Build.Utilities.ToolTask.Execute() [/src/IdeaStudio.Web.Client/IdeaStudio.Web.Client.csproj]
    0 Warning(s)
    1 Error(s)

Time Elapsed 00:00:03.96
The command '/bin/sh -c dotnet build "IdeaStudio.Web.Server.csproj" -c Release -o /app' returned a non-zero code: 1

1 Ответ

0 голосов
/ 04 июля 2019

Ваша проблема связана с относительным путем. Для COPY первое значение относится к текущему пути файла Dockerfile, а второй параметр относится к WORKDIR в контейнере Docker.

Попробуйте док-файл ниже:

    FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS base
    WORKDIR /app
    EXPOSE 80

    FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build
    WORKDIR /src
    COPY ["src/IdeaStudio.Web.Server/IdeaStudio.Web.Server.csproj", "IdeaStudio.Web.Server/"]
    COPY ["src/IdeaStudio.Web.Client/IdeaStudio.Web.Client.csproj", "IdeaStudio.Web.Client/"]
    COPY ["src/IdeaStudio.Web.Shared/IdeaStudio.Web.Shared.csproj", "IdeaStudio.Web.Shared/"]
    RUN dotnet restore "IdeaStudio.Web.Server/IdeaStudio.Web.Server.csproj"
    COPY "src" .
    WORKDIR "/src/IdeaStudio.Web.Server"
    RUN dotnet build "IdeaStudio.Web.Server.csproj" -c Release -o /app

    FROM build AS publish
    RUN dotnet publish "IdeaStudio.Web.Server.csproj" -c Release -o /app

    FROM base AS final
    WORKDIR /app
    COPY --from=publish /app .
    ENTRYPOINT ["dotnet", "IdeaStudio.Web.Server.dll"]
...