FROM "this line works but cant show code"
RUN yum install -y java-1.8.0-openjdk.x86_64 && yum clean all
COPY /resources/accounts.txt /home/resources/accounts.txt
COPY elk_casino_server /home/elk_casino_server
CMD ["jar","cvmf","/home/elk_casino_server/src/META-INF/MANIFEST.MF","/home/server.jar","/home/elk_casino_server/src/Main.class"]
CMD ["java","-jar","/home/server.jar"]
请花更多时间正确格式化代码片段,并确保提出明确的问题。
Dockerfile
使用COPY
指令将两个资源复制到容器映像中:
/resources/accounts.txt
(在图像中可用/home/resources/accounts.txt
)/elk_casino_server
(在图像中可用/home/elk_casino_server
)
不幸的是,您的CMD
指令正在尝试执行非常不同的东西。只能定义一条命令指令,并且接受后者,即:
CMD ["java","-jar","/home/server.jar"]
任何时候都不会/home/server.jar
复制到容器映像中。
char 命令的参数顺序似乎是错误的。manifest-addition
应该在jar-file
之后,而不是在它之前。
jar cfm jar-file manifest-addition input-file(s)
请参见: 在 JAR 文件中打包程序:修改清单文件
另外:如果有多个CMD
,最后一个将覆盖其他。由于我认为您想在构建时打包罐子,因此RUN
可能是更好的选择。
这两点结合起来:
RUN jar cvmf /home/server.jar /home/elk_casino_server/src/META-INF/MANIFEST.MF /home/elk_casino_server/src/Main.class