7

在类似的标题下已经有一个带有答案的问题,但标题并没有真正概述真正的问题。mkdir 实际上正在为另一个问题/线程执行。它只是失败...

而我已经:

RUN mkdir -p /home/developer 我得到: 第 18 步:运行 MKDIR 未知指令:运行 MKDIR

那实际上没有执行。

这是第 1 行的 Docker 文件。所有这些步骤都成功了,直到 mkdir。

FROM ubuntu:14.04
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get -y purge php.*
RUN apt-get update
RUN apt-get upgrade -y
RUN apt-get install -y wget
RUN apt-get install -y build-essential
RUN wget http://xmlsoft.org/sources/libxml2-2.8.0.tar.gz
RUN tar -xvf libxml2-2.8.0.tar.gz
WORKDIR libxml2-2.8.0
RUN ./configure && make && make install
RUN apt-get install -y make
# build php
RUN wget http://museum.php.net/php5/php-5.4.0.tar.bz2
RUN tar -xvf php-5.4.0.tar.bz2
WORKDIR php-5.4.0
RUN ./configure && make
RUN make install
# Replace 1000 with your user / group id
RUN export uid=1000 gid=1000
# −p, −−parents -> no error if existing, make parent directories as needed
RUN mkdir -p /home/developer
4

2 回答 2

8

在你的 Dockerfile之间RUN和里面有一个有趣的角色。mkdir用空格替换它会使您的 Dockerfile 构建。

docker 用你的构建输出:

Sending build context to Docker daemon 2.048 kB
Step 1 : FROM ubuntu:14.04
 ---> c4bea91afef3
Step 2 : RUN MKDIR
Unknown instruction: RUN MKDIR

docker build 输出固定:

Sending build context to Docker daemon 2.048 kB
Step 1 : FROM ubuntu:14.04
 ---> c4bea91afef3
Step 2 : RUN mkdir -p /home/developer
 ---> Using cache
 ---> 1ac57f7c9ccd
Successfully built 1ac57f7c9ccd
于 2016-01-14T00:21:51.697 回答
0

mkdir 应该是小写的。使用大写 MKDIR 时收到“MKDIR:未找到”。

于 2020-09-25T19:07:52.673 回答