Dockerfile运行可执行文件
我有一个目录,其中包含一个Dockerfile
和一个JAR文件foo.jar
。
在Dockerfile
我写了以下内容:
FROM java:8 EXPOSE 8080 ENTRYPOINT ["java","-jar","foo.jar"]
我通过运行成功地build立了图像
docker build -t foo-example .
然后我尝试通过运行来运行它
docker run -ti --rm -p 8080:8080 foo-example
我得到这个错误:
Error: Unable to access jarfile foo.jar
有任何想法吗?
您需要在容器内部提供foo.jar
,例如将其复制到内部,并确保在执行时指定准确的位置。 阅读有关ADD命令的docker文档。
基本上你需要添加一些东西:
ADD foo.jar foo.jar
使用COPY是另一种select:
COPY foo.jar ~/.
您应该使用docker COPY或ADD命令。 如下所述,COPY更受欢迎: https : //docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/#add-or-copy
FROM java:8 EXPOSE 8080 COPY foo.jar ~/. ENTRYPOINT ["java","-jar","foo.jar"]