以下是我的Dockerfile,我将一个文件夹和两个Java jar文件复制到映像上,目的是执行复制目录内的脚本文件,然后执行两个Java应用程序。
FROM openjdk:latest
COPY ./mycluster /dir/latest/
COPY ./app1.jar /dir/latest/
COPY ./app2.jar /dir/latest/
CMD ["sh", "-c", "cd /dir/latest/ ;./local_cluster_startup.sh ./;sleep 5 ;java -jar app2.jar;sleep 5;java -jar app1.jar;"]
构建docker映像并运行以下命令后 docker container run tryout:nsdap ,输出为
sh: 1: cd: can't cd to /dir/latest/
sh: 1: ./local_cluster_startup.sh: not found
Error: Unable to access jarfile app2.jar
Error: Unable to access jarfile app1.jar
谁能告诉我这里做错了什么吗?
我正在寻找一个最小的docker映像,该映像可以执行Java jar和shell脚本。你能帮我吗?谢谢
答案 0 :(得分:1)
使用WORKDIR(https://docs.docker.com/engine/reference/builder/#workdir)切换到目录“ / dir / latest”。 然后您可以从该目录运行命令
WORKDIR /dir/latest
CMD ["./local_cluster_startup.sh ;sleep 5 ;java -jar app2.jar;sleep 5;java -jar app1.jar;"]