Dockerfile:找不到命令

Docker镜像应该运行的是什么:

-bash-4.2$ pwd /u/workspaces/compose/src -bash-4.2$ ls compileAndTest -bash-4.2$ vim compileAndTest #!/usr/bin/env bash echo 'hi' 

Dockerfile

 -bash-4.2$ pwd /u/mybuild -bash-4.2$ ls Dockerfile -bash-4.2$ vim Dockerfile FROM java WORKDIR /u/workspaces/compose CMD /src/compileAndTest 

build立和运行

 -bash-4.2$ docker build -t myjavabuild . Sending build context to Docker daemon 3.072 kB Step 1 : FROM java ---> 69a777edb6dc Step 2 : WORKDIR /u/eugenep/workspaces/compose ---> Using cache ---> 583d8616f495 Step 3 : CMD /src/compileAndTest ---> Using cache ---> d0458943d19e Successfully built d0458943d19e -bash-4.2$ docker run myjavabuild /bin/sh: 1: /src/compileAndTest: not found 

即使在Dockerfile中指定了可执行的compileAndTest的path,它也没有find

有谁知道为什么?

这里的问题是你没有将/src/compileAndTest文件复制到容器的文件系统。 您可以使用Dockerfile中的ADD标签来实现这一点。

 FROM java WORKDIR /u/workspaces/compose ADD /u/workspaces/compose/src/compileAndTest /src/compileAndTest RUN chmod +x /src/compileAndTest CMD /src/compileAndTest 

主机添加compileAndTest文件丢失。