嗨,我是Docker的新手,并尝试从头开始编写新图像.我正在编写这个dockerFile来编译和运行同一目录中可用的简单java程序.
这是dockerfile.
FROM scratch
CMD javac HelloWorld.java
CMD java HelloWorld
Run Code Online (Sandbox Code Playgroud)
Docker构建成功,如下所示
[root@hadoop01 myjavadir]# docker build -t runhelloworld .
Sending build context to Docker daemon 3.072 kB
Sending build context to Docker daemon
Step 0 : FROM scratch
--->
Step 1 : CMD javac HelloWorld.java
---> Running in 7298ad7e902f
---> f5278ae25f0c
Removing intermediate container 7298ad7e902f
Step 2 : CMD java HelloWorld
---> Running in 0fa2151dc7b0
---> 25453e89b3f0
Removing intermediate container 0fa2151dc7b0
Successfully built 25453e89b3f0
Run Code Online (Sandbox Code Playgroud)
但是当我尝试运行时,它会抛出以下错误:
[root@hadoop01 myjavadir]# docker run runhelloworld
exec: "/bin/sh": stat /bin/sh: no such file or directory
Error response from daemon: Cannot start container 676717677d3f1bf3b0b000d68b60c32826939b8c6ec1b5f2e9876969c60e22a4: [8] System error: exec: "/bin/sh": stat /bin/sh: no such file or directory
[root@hadoop01 myjavadir]# exec: "/bin/sh": stat /bin/sh: no such file or directory
bash: exec:: command not found
Run Code Online (Sandbox Code Playgroud)
请帮忙解决同样的问题.
chaning第二行后更新RUN.
[root@hadoop01 myjavadir]# docker build -t runhelloworld .
Sending build context to Docker daemon 3.584 kB
Sending build context to Docker daemon
Step 0 : FROM scratch
--->
Step 1 : RUN javac HelloWorld.java
---> Running in fdef2d65ac58
exec: "/bin/sh": stat /bin/sh: no such file or directory [8]
System error: exec: "/bin/sh": stat /bin/sh: no such file or directory
Run Code Online (Sandbox Code Playgroud)
mic*_*ahr 11
Dockerfile中只能有一条CMD指令.如果列出多个CMD,则只有最后一个CMD才会生效.
这就是为什么javac没有执行命令并找到启动容器结果的no such file or directory原因.
CMD并ENTRYPOINT用于执行容器(入口点级别)后应启动的任务.
CMD的主要目的是为执行容器提供默认值.
这适用于该行CMD java HelloWorld,但不适用于CMD javac HelloWorld.java构建步骤.这RUN是为了什么.
将第二行更改为RUN javac HelloWorld.java.
FROM scratch
RUN javac HelloWorld.java
CMD java HelloWorld
Run Code Online (Sandbox Code Playgroud)
生成的提交图像[来自第二行]将用于Dockerfile中的下一步.
更新
正如Diyoda指出的那样,确保FROM图像提供java.
| 归档时间: |
|
| 查看次数: |
22386 次 |
| 最近记录: |