【发布时间】:2021-08-17 19:03:00
【问题描述】:
我的微服务很少(每个项目级别的 docker 文件),它们都使用“commonDLL”项目。每个微服务解决方案文件中都引用了 commondll 项目。遇到生成 docker 图像的问题。它说在复制时找不到外部项目。 docker文件应该如何定义?我需要 Docker Compose 文件吗?有人说只为 commondll 项目创建一个镜像,我将如何在每个微服务 docker 文件中引用?
我对“Docker”的了解有限。最终,它将部署到 AKS。任何帮助表示赞赏。
项目结构(图片)
Docker 文件
#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base
WORKDIR /app
FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
WORKDIR /src
COPY ["CompanyName.AccountService/CompanyName.AccountService.csproj", "CompanyName.AccountService/"]
COPY ["../CompanyName.CoreProject/CoreProject/CoreProject.csproj", "../CompanyName.CoreProject/CoreProject/"] (********FAILED******)
RUN dotnet restore "CompanyName.AccountService/CompanyName.AccountService.csproj"
COPY . .
RUN dotnet publish "CompanyName.AccountService.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /appc
COPY --from=build /app/publish .
EXPOSE 500
EXPOSE 5000
ENV ASPNETCORE_URLS http://*:500;https://*:5000;
ENTRYPOINT ["dotnet", "CompanyName.AccountService.dll"]
【问题讨论】:
-
您当前的 Dockerfile 是什么样的,您遇到了什么错误? How to include files outside of Docker's build context? 会回答你的问题吗?
-
请查看 docker 文件(更新后的帖子)。它无法从 docker 文件中找到外部(核心项目 dll)。
-
你不能
COPY ../anything;您需要将构建上下文更改为更高级别的目录,然后从其子目录中更改COPY。我链接到的问题有更多详细信息。
标签: docker asp.net-core dockerfile microservices azure-aks