【问题标题】:docker file not found找不到 docker 文件
【发布时间】: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


【解决方案1】:

确保您的cacheService-0.0.1-SNAPSHOT.jar 与您的Dockerfile相同 文件夹中。

这样,当您执行sudo docker build -t myimage . 时,它将成为您的docker build context 的一部分

“源”(在“ADD <source> <destination>”中)是docker build 中使用的 PATH 的相对路径(此处为“.”:当前目录)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-14
    • 2017-12-20
    • 2018-01-21
    • 2019-01-30
    • 1970-01-01
    • 2019-09-15
    • 2019-07-15
    • 2017-06-13
    相关资源
    最近更新 更多