我有一个带有以下 CMD
的 Dockerfile
来启动我的 Spring Boot 应用程序:
FROM java:8-jre
# ...
CMD ["java", "-jar", "/app/file*.jar"]
当我尝试从创建的图像启动容器时,我得到:
Error: Unable to access jarfile /app/file*.jar
但是当我在启动容器时覆盖 CMD
并在容器中执行命令时一切正常:
docker run -it <imageId> bash
root@<containerId>:/app# java -jar /app/file*.jar
<spring boot app starts...>
是否可以在使用 docker CMD 的 java -jar
命令中使用通配符?
请不要告诉我不要使用通配符。我想使用它的原因;-)
更新 根据答案,我能够修复它:
CMD ["/bin/sh", "-c", "java -jar /app/file*.jar"]
最佳答案
这种星号扩展是由命令行处理器(shell)完成的,您可以通过直接调用 java 来规避它。
与在 Windows 下使用“CMD/C”调用命令的方式非常相似,以获得完整的处理。
改为调用 /bin/sh
。
关于java - 为什么 jar 执行的通配符在 docker CMD 中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41428013/