C# 配置Docker为Angular应用程序创建容器
我正在尝试让默认的Angular应用程序在Docker容器中工作。以下是我遵循的步骤: 1) 打开Visual Studio 2017并选择:文件/新建/项目 2) 选择ASP.NET核心Web应用程序。单击“确定” 3) 选择.NET Core 2.2和Angular。我注意到“启用Docker支持”已灰显。不知道为什么。在Visual Studio 2019中尝试了前三个步骤,结果是一样的。取消选中HTTPS的配置。单击“确定” 4) 右键单击项目并选择添加/容器编排支持。选择容器编排作为Docker Compose,选择目标操作系统作为Linux 5) 重建应用程序 当我启动应用程序时,我看到: 我的Docker文件如下所示:C# 配置Docker为Angular应用程序创建容器,c#,angular,docker,docker-compose,dockerfile,C#,Angular,Docker,Docker Compose,Dockerfile,我正在尝试让默认的Angular应用程序在Docker容器中工作。以下是我遵循的步骤: 1) 打开Visual Studio 2017并选择:文件/新建/项目 2) 选择ASP.NET核心Web应用程序。单击“确定” 3) 选择.NET Core 2.2和Angular。我注意到“启用Docker支持”已灰显。不知道为什么。在Visual Studio 2019中尝试了前三个步骤,结果是一样的。取消选中HTTPS的配置。单击“确定” 4) 右键单击项目并选择添加/容器编排支持。选择容器编排作为D
FROM microsoft/dotnet:2.2-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 80
FROM microsoft/dotnet:2.2-sdk AS build
WORKDIR /src
COPY ["Web/WebSPA/WebSPA.csproj", "Web/WebSPA/"]
RUN dotnet restore "Web/WebSPA/WebSPA.csproj"
COPY . .
WORKDIR "/src/Web/WebSPA"
RUN dotnet build "WebSPA.csproj" -c Release -o /app
FROM build AS publish
RUN dotnet publish "WebSPA.csproj" -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "WebSPA.dll"]
ARG NODE_IMAGE=node:8.11
FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 AS base
WORKDIR /app
EXPOSE 80
FROM ${NODE_IMAGE} as node-build
WORKDIR /web
COPY src/Web/WebSPA .
RUN npm install
RUN npm run build:prod
FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build
WORKDIR /src
COPY scripts scripts/
COPY src/Web/*/*.csproj /src/csproj-files/
COPY . .
COPY --from=node-build /web/wwwroot /src/src/Web/WebSPA/wwwroot/
WORKDIR /src/src/Web/WebSPA
RUN dotnet publish -c Release -o /app
FROM build AS publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "WebSPA.dll"]
我看到另一个问题,建议将DockerFile更改为以下内容:
FROM microsoft/dotnet:2.2-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 80
FROM microsoft/dotnet:2.2-sdk AS build
WORKDIR /src
COPY ["Web/WebSPA/WebSPA.csproj", "Web/WebSPA/"]
RUN dotnet restore "Web/WebSPA/WebSPA.csproj"
COPY . .
WORKDIR "/src/Web/WebSPA"
RUN dotnet build "WebSPA.csproj" -c Release -o /app
FROM build AS publish
RUN dotnet publish "WebSPA.csproj" -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "WebSPA.dll"]
ARG NODE_IMAGE=node:8.11
FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 AS base
WORKDIR /app
EXPOSE 80
FROM ${NODE_IMAGE} as node-build
WORKDIR /web
COPY src/Web/WebSPA .
RUN npm install
RUN npm run build:prod
FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build
WORKDIR /src
COPY scripts scripts/
COPY src/Web/*/*.csproj /src/csproj-files/
COPY . .
COPY --from=node-build /web/wwwroot /src/src/Web/WebSPA/wwwroot/
WORKDIR /src/src/Web/WebSPA
RUN dotnet publish -c Release -o /app
FROM build AS publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "WebSPA.dll"]
但是,这并没有什么区别。您必须在您的计算机上安装docker,而且-如果您的目标只是运行带有angular的docker容器-您根本不需要visual studioall@happyZZR1400,我安装了Docker。如果我没有安装Docker,应用程序甚至不会运行。你是否能够运行一些简单的容器,如“Docker run hello world”?@happyZZR1400,是的。我还让Docker使用MVC应用程序。我的dockerfile有什么问题吗?据我所知,你在试图塑造形象。不是角度,而是点网MVC,对吗?