首页 > 解决方案 > 我们如何使用 dotnet core api 项目为 Angular 创建 Dockerfile?

问题描述

我已经使用 Visual Studio 为我的 dotnet api 项目创建了 Dockerfile,但是我们如何将客户端应用程序集成到 docker 文件中。我创建了如下所示的 docker 文件:

FROM microsoft/dotnet:2.2-aspnetcore-runtime AS base

WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM microsoft/dotnet:2.2-sdk AS build

WORKDIR /src
COPY ["Locomote-e-Client.Service/Locomote-e-Client.Service.csproj", "Locomote-e-Client.Service/"]
COPY ["Locomote-e-Client.Core/Locomote-e-Client.Core.csproj", "Locomote-e-Client.Core/"]
COPY ["Locomote-e-Client.Common/Locomote-e-Client.Common.csproj", "Locomote-e-Client.Common/"]
COPY ["Locomote-e-Client.Data/Locomote-e-Client.Data.csproj", "Locomote-e-Client.Data/"]
RUN dotnet restore "Locomote-e-Client.Service/Locomote-e-Client.Service.csproj"
COPY . .
WORKDIR "/src/Locomote-e-Client.Service"
RUN dotnet build "Locomote-e-Client.Service.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "Locomote-e-Client.Service.csproj" -c Release -o /app/publish

FROM node:10.21 as nodebuilder
RUN mkdir /usr/src/app
WORKDIR /usr/src/app
ENV PATH /usr/src/app/node_modules/.bin:$PATH
COPY Locomote-e-ClientApp/package.json /usr/src/app/package.json
RUN npm install
COPY Locomote-e-ClientApp/. /usr/src/app
RUN npm run build

FROM base AS final
WORKDIR /app
COPY --from=publish /app .
RUN mkdir -p /app/ClientApp/dist
COPY --from=nodebuilder /usr/src/app/dist/. /app/ClientApp/dist/
ENTRYPOINT ["dotnet", "Locomote-e-Client.Service.dll"]

每当我使用此 docker 文件创建图像时,它都会成功创建图像。但是当我尝试使用容器运行该图像时,它没有在容器中运行。

构建镜像的命令

docker build -t ashishrajput194/locomate:v1 .

作为容器运行的命令

docker run -p 80:80 -d ashishrajput194/locomate:v1 

它没有显示任何错误,但容器自动退出。我无法运行该应用程序。

标签: dockerdevops

解决方案


推荐阅读