You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Framework Web项目Dockerfile构建报错:未知指令NEW-WEBSITE

解决Dockerfile中NEW-WEBSITE指令解析错误

问题描述

为.NET Framework Web项目构建Docker镜像时,触发以下解析错误:

Dockerfile parse error line 20: unknown instruction: NEW-WEBSITE

对应的出错Dockerfile片段:

RUN Remove-Website -Name 'Default Web Site';`
    New-Website -Name 'web-app' -Port 80 -PhysicalPath $env:APP_ROOT;`
    New-WebApplication -Name 'app' -Site 'web-app' -PhysicalPath $env:APP_ROOT`

错误原因

Docker误将NEW-WEBSITE识别为未知的Docker指令,而非PowerShell命令的一部分,核心问题是RUN指令的换行续行格式错误:

  • 反引号`后存在空格或多余换行,导致Docker无法识别这是PowerShell的续行符
  • 最后一行命令末尾无需添加反引号

修正后的完整Dockerfile

FROM mcr.microsoft.com/dotnet/framework:4.8-sdk As builder

WORKDIR D:\src
COPY *.sln .
COPY Internal.Api.csproj .\Internal.Api\
RUN nuget restore

COPY . D:\src
RUN msbuild Internal.Api.csproj /p:OutputPath=d:\out /p:Configuration=Release

FROM mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2019
SHELL ["powershell", "-Command", "$ErrorActionPreference='Stop';"]

ENV APP_ROOT=D:\web-app

WORKDIR  ${APP_ROOT}
RUN Remove-Website -Name 'Default Web Site'; `
    New-Website -Name 'web-app' -Port 80 -PhysicalPath $env:APP_ROOT; `
    New-WebApplication -Name 'app' -Site 'web-app' -PhysicalPath $env:APP_ROOT

COPY --from=builder D:\out\-PublishedWebsites\Internal.Api .

修改说明

  • 确保每个反引号`前有空格,且反引号是该行最后一个字符(无后续空格或换行)
  • 删除最后一行命令末尾的多余反引号
  • 保留SHELL指令配置的PowerShell执行环境,保证所有命令在同一会话中运行

内容的提问来源于stack exchange,提问作者DevSay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 10:25:18