Runnin docker build生成以下错误“未知指令:EXPAND-ARCHIVE”

时间:2020-03-16 16:14:55

标签: docker

我不得不说我是Docker和Dockerfile的新手...我需要创建一个安装有Nano服务器和Java的构建。 我创建了以下docker文件,但出现以下错误

这是文件

# Installer image
FROM mcr.microsoft.com/windows/servercore:1909 AS installer

SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]


RUN Invoke-WebRequest -OutFile java.zip https://download.oracle.com/otn-pub/java/jdk/13.0.2+8/d4173c853231432d94f001e99d882ca7/jdk-13.0.2_windows-x64_bin.zip;`
    Expand-Archive java.zip -DestinationPath java; `

错误是

Error response from daemon: Dockerfile parse error line 8: unknown instruction: EXPAND-ARCHIVE

我在做什么错?我在Windows容器运行时上

谢谢

2 个答案:

答案 0 :(得分:1)

将其更改为以下内容并进行了测试。错误消失了。

# Installer image
FROM mcr.microsoft.com/windows/servercore:10.0.14300.1030 AS installer

SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; 
$ProgressPreference = 'SilentlyContinue';"]


RUN Invoke-WebRequest -OutFile java.zip https://download.oracle.com/otn-pub/java/jdk/13.0.2+8/d4173c853231432d94f001e99d882ca7/jdk-13.0.2_windows-x64_bin.zip;
CMD [ "Expand-Archive", "java.zip", "-DestinationPath java;" ]

答案 1 :(得分:1)

Microsoft 的文档现在提到使用 \ 来转义多行

RUN Write-Host "pwsh .bak copied across"; \
    Get-ChildItem -Path /var/opt/mssql/backup \
    Invoke-Sqlcmd -query "SELECT GETDATE() AS TimeOfQuery" \
    Invoke-Sqlcmd -query "SELECT * from sys.databases" \

https://docs.microsoft.com/en-us/virtualization/windowscontainers/manage-docker/manage-windows-dockerfile#escape-character