mkdir 在 docker 文件中失败,但在 运行 手动时工作正常
mkdir fails in docker file but works fine when run manually
我有一个 docker 文件,如下所示:
# escape=`
FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim
SHELL ["/bin/bash"]
RUN mkdir -p /usr/local/share/ca-certificates/myfolder
当我尝试构建时出现以下错误:
/bin/bash: mkdir -p /usr/local/share/ca-certificates/myfolder: No such file or directory
但是,如果我在没有该命令的情况下启动容器实例,那么它运行得很好:
mkdir -p /usr/local/share/ca-certificates/myfolder
它使文件夹正常。
我也试过这个:
RUN ["mkdir"] ["-p"] ["/usr/local/share/ca-certificates/myfolder"]
但是会出现以下错误:
mkdir: missing operand
Try 'mkdir --help' for more information.
如何从我的 docker 文件在 Linux 容器中创建目录?
备注:
- 我的机器是Windows10
- 我的容器是 运行 Debian 10
原来 SHELL ["/bin/bash"]
命令是错误的。当我删除它时它工作正常。
删除它或用 SHELL ["/bin/bash", "-c"]
替换它似乎有效。
我有一个 docker 文件,如下所示:
# escape=`
FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim
SHELL ["/bin/bash"]
RUN mkdir -p /usr/local/share/ca-certificates/myfolder
当我尝试构建时出现以下错误:
/bin/bash: mkdir -p /usr/local/share/ca-certificates/myfolder: No such file or directory
但是,如果我在没有该命令的情况下启动容器实例,那么它运行得很好:
mkdir -p /usr/local/share/ca-certificates/myfolder
它使文件夹正常。
我也试过这个:
RUN ["mkdir"] ["-p"] ["/usr/local/share/ca-certificates/myfolder"]
但是会出现以下错误:
mkdir: missing operand
Try 'mkdir --help' for more information.
如何从我的 docker 文件在 Linux 容器中创建目录?
备注:
- 我的机器是Windows10
- 我的容器是 运行 Debian 10
原来 SHELL ["/bin/bash"]
命令是错误的。当我删除它时它工作正常。
删除它或用 SHELL ["/bin/bash", "-c"]
替换它似乎有效。