【问题标题】:Docker File - Common dll project reference? [duplicate]Docker 文件 - 常见的 dll 项目参考? [复制]
【发布时间】:2021-08-17 19:03:00
【问题描述】:

我的微服务很少(每个项目级别的 docker 文件),它们都使用“commonDLL”项目。每个微服务解决方案文件中都引用了 commondll 项目。遇到生成 docker 图像的问题。它说在复制时找不到外部项目。 docker文件应该如何定义?我需要 Docker Compose 文件吗?有人说只为 commondll 项目创建一个镜像,我将如何在每个微服务 docker 文件中引用?

我对“Docker”的了解有限。最终,它将部署到 AKS。任何帮助表示赞赏。

项目结构(图片)

Project Structure

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


【解决方案1】:

由于您没有发布 docker 文件,我可以猜到您在做什么。

你可能有一个像这样的 Dockerfile:

FROM someimage

ADD /my-bin-folder/my-dependency.dll
# and so on...

然后你发出命令docker build .,其中. 是所谓的docker 构建路径,所以请记住所有ADDCOPY 指令都是**相对于上下文路径`,你绝对不能引用它之外的资源。

解决方案:复制资源以添加到上下文路径中,构建引用本地上下文路径资源的 docker 映像,移除临时依赖项。

构建脚本

cp /my-bin-folder/my-dependency.dll .
docker build .
rm /my-bin-folder/my-dependency.dll

Dockerfile

FROM someimage

ADD my-dependency.dll
# and so on...

【讨论】:

  • 刚刚更新了我的 docker 文件。 “添加”命令是否适用于从项目上下文之外复制文件?
  • 我根据您要求我解释的内容编辑了我的帖子。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-19
  • 2011-01-22
相关资源
最近更新 更多