Shell脚本在Dockerfile的mkdir上失败



有一个Shell脚本,如下所示

ENV HOME=/home
RUN mkdir $HOME

以上脚本是在一个Docker文件,得到异常如下[91mmkdir:缺少操作数。尝试'mkdir --help'获取更多信息。构建步骤"Docker构建和发布"将构建标记为失败

我刚刚尝试了这样一个Dockerfile:

FROM scratch
ENV HOME=/home
RUN mkdir $HOME

并得到了

$ docker build .
Sending build context to Docker daemon  2.048kB
Step 1/3 : FROM scratch
---> 
Step 2/3 : ENV HOME=/home
---> Running in e9d03ee00aa7
Removing intermediate container e9d03ee00aa7
---> 16f6e2ba2f09
Step 3/3 : RUN mkdir $HOME
---> Running in 6847b9b34717
failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "/bin/sh": stat /bin/sh: no such file or directory: unknown
$

然后我编辑文件,看起来像这样:

FROM mariadb
ENV HOME=/home
RUN mkdir $HOME

和明白了:

$ docker build .
Sending build context to Docker daemon  2.048kB
Step 1/3 : FROM mariadb
---> ea81af801379
Step 2/3 : ENV HOME=/home
---> Running in 7d903215da74
Removing intermediate container 7d903215da74
---> 77276b970083
Step 3/3 : RUN mkdir $HOME
---> Running in f120f966144f
mkdir: cannot create directory '/home': File exists
The command '/bin/sh -c mkdir $HOME' returned a non-zero code: 1
$

从错误消息中我可以看到$HOME变量不是一个问题。你那边应该也可以。

最新更新