docker - 我们如何使用 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
它没有显示任何错误,但容器自动退出。我无法运行该应用程序。
解决方案
推荐阅读
- amazon-web-services - 我可以下载 AWS Volume 的快照并安装在我的本地机器上并从中启动吗?
- pdf - 从 blob 列中的存档数据库中检索单词、pdf
- python - 图片上传失败并出现 MultiValueDictKeyError :DJANGO
- excel - ErrorHandler 不工作 -> 编译错误/找不到对象
- python - 谷歌 http 请求被阻止
- sql - SQL 仅使用 Join 从 2 个表中获取数据,其中我们还需要来自第二个表的空记录
- spring - 使用 jar 文件中的 cucumber-spring 后端运行时未加载胶水代码
- android - BindingAdapter 中的高阶函数
- javascript - 从商店本身的操作中访问 redux 商店属性
- mysql - MYSQL SELECT WHERE CLAUSE - 排除行