【发布时间】:2021-12-12 18:08:07
【问题描述】:
我正在使用 Visual Studio 控制台应用程序创建一个 docker 映像,并且 dockerfile 看起来像:
FROM mcr.microsoft.com/dotnet/sdk:5.0 AS base
RUN dotnet new --install MyCustomTemplate::1.0.0
WORKDIR /app
FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
WORKDIR /src
COPY ["DockerTemplates/DockerTemplates.csproj", "DockerTemplates/"]
RUN dotnet restore "DockerTemplates/DockerTemplates.csproj"
COPY . .
WORKDIR "/src/DockerTemplates"
RUN dotnet build "DockerTemplates.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "DockerTemplates.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "DockerTemplates.dll"]
从 sdk 创建镜像后,我调用了命令以使用以下命令安装自定义模板:
RUN dotnet new --install MyCustomTemplate::1.0.0
但是当创建镜像时,我在我的 docker 镜像中找不到我的自定义模板。
如何在创建图像期间在图像中安装自定义模板?有人可以帮忙吗?
谢谢
【问题讨论】:
-
您能提供更多信息吗?您将“RUN”命令放在哪里?您是创建了新的 Dockerfile 还是修改了现有的 Dockerfile?您的命令在定义的 WORKDIR 中执行。你选择了正确的WORKDIR还是
cd /my_install_dir && dotnet new ...? -
从 mcr.microsoft.com/dotnet/sdk:5.0 创建一个新的 dockerfile 并从 nuget 源安装 dotnet 模板
-
你怎么看模板不存在?当我尝试复制您的问题时,模板已安装在映像中。我看不出安装它们的目的,但它们就在那里。
-
我也可以看到标准模板,但是没有安装新的自定义模板。
-
你怎么看没有安装?
标签: docker .net-core dockerfile dotnet-new