我正在使用 python:3.6.5-windowsservercore
基础镜像。
COPY . /app
将构建上下文复制到 C:\app
中。这包括构建项目所需的某些秘钥。
在运行构建之后,我想要删除 keys 文件夹(C:\app\keys),因此我使用以下命令:
RUN powershell.exe Remove-Item -Path C:\app\keys -Force
注意-我还尝试了以下每个替代方案:
RUN Remove-Item -Path C:\app\keys -Force
RUN RD /S /Q C:\app\keys
这导致我出现以下错误:
Step 10/14 : RUN powershell.exe Remove-Item -Path C:\app\keys -Force
---> Running in 4e22124332b1
Remove-Item : Object reference not set to an instance of an object.
At line:1 char:1
+ Remove-Item -Path C:\app\keys -Force
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Remove-Item], NullReferenceEx
ception
+ FullyQualifiedErrorId : System.NullReferenceException,Microsoft.PowerShe
ll.Commands.RemoveItemCommand
The command 'powershell -Command $ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue'; powershell.exe Remove-Item -Path C:\app\keys -Force' returned a non-zero code: 1
如何删除镜像内的目录?
-Command
参数用于powershell.exe
。像这样:RUN powershell.exe -Command Remove-Item -Path "C:\app\keys" -Force
。如果你已经尝试过这种方式,请原谅。如果你已经运行了像SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
这样的命令,你只需要运行RUN Remove-Item -Path C:\app\keys -Force
。 - AshRUN Remove-Item -Path C:\app\keys -Force
。你可能可以在这里找到一些帮助:https://github.com/Drylm/rmq-win/blob/master/Dockerfile.3.7.7 - Bhaal22