【发布时间】:2017-05-16 15:07:54
【问题描述】:
我有一个 Dockerfile 和以下 CMD 来启动我的 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"]
【问题讨论】:
-
CMD java -jar /app/file*.jar大致相同,而且更直接一些。 -
使用通配符的原因是什么?
-
@ThorbjørnRavnAndersen jar 文件名包含版本,我不想每次都调整 Dockerfile 或使用
build-arg。通配符似乎是避免两者的简单方法。 -
将jar文件复制到容器中时去掉版本号
标签: java spring docker spring-boot