【发布时间】:2016-05-28 20:45:07
【问题描述】:
我正在创建一个 maven 项目的 docker 映像。 这是docker文件
FROM java:8
# Install maven
RUN apt-get update
RUN apt-get install -y maven
WORKDIR ~/mmt/CouchBaseClient/CB-RestAPI/CacheService
# Prepare by downloading dependencies
#ADD pom.xml /mmt/CouchBaseClient/CB-RestAPI/CacheService/pom.xml
#RUN ["mvn", "dependency:resolve"]
#RUN ["mvn", "verify"]
ADD cacheService-0.0.1-SNAPSHOT.jar /target/cacheService-0.0.1-SNAPSHOT.jar
EXPOSE 4567
CMD ["/usr/lib/jvm/java-8-openjdk-amd64/bin/java", "-jar", "target/couchclient-0.0.1-SNAPSHOT.jar server cacheService.yml]
当我运行以下命令来构建我的图像时
sudo docker build -t myimage .
我收到以下错误
Step 5 : ADD cacheService-0.0.1-SNAPSHOT.jar /target/cacheService-0.0.1-SNAPSHOT.jar
lstat cacheService-0.0.1-SNAPSHOT.jar: no such file or directory
但是我的文件在那里..我该怎么做
【问题讨论】:
-
我的答案似乎缺少什么?
-
它工作得很好,但问题是当我改变文件的路径并给出一些随机路径时它仍然工作。就像它不搜索路径它只搜索docker文件所在的目录一样
-
它应该搜索 Dockerfile 所在的目录及其所有子文件夹。那是 docker 构建的“上下文”。你能举一个 ADD 命令的例子(完整的行,带有随机路径)它仍然有效吗?
-
添加 cacheService-0.0.1-SNAPSHOT.jar ~/mmt/CouchBaseClient/ 现在我将源更改为 mmt/CouchBaseClient 仍然有效
-
即使您的主机上不存在
./mmt/CouchBaseClient/cacheService-0.0.1-SNAPSHOT.jar,您的意思是ADD mmt/CouchBaseClient/cacheService-0.0.1-SNAPSHOT.jar ~/mmt/CouchBaseClient“有效”(在执行sudo docker build -t myimage .时)? (Dockerfile在哪里)
标签: java maven docker docker-build