【问题标题】:i want build docker file [duplicate]我想构建 docker 文件 [重复]
【发布时间】:2021-02-17 10:15:28
【问题描述】:

当运行这个命令时

sudo docker build -t jhipster /home/abed/project/microServies/StudentApp/src/main/docker/dockerfile1

sudo docker build -t jhipster /home/abed/project/microServies/StudentApp/src/main/docker/dockerfile2

看到这个错误:

unable to prepare context: context must be a directory: /home/abed/project/microServies/StudentApp/src/main/docker/dokcerfile1

unable to prepare context: context must be a directory: /home/abed/project/microServies/StudentApp/src/main/docker/dokcerfile2

我不知道这条消息是什么意思

我有很多 docker 文件我必须构建和运行,但我无法运行任何文件

【问题讨论】:

  • 运行这个:sudo docker build -t jhipster /home/abed/project/microServies/StudentApp/src/main/docker/,你需要提供构建docker镜像的目录路径,而不是dockerfile路径
  • 我看到还有一些问题,为什么同一个目录下有多个dockerfile。 dockerfile 名称也必须是Dockerfile,不能有dockerfile1 等后缀。
  • 我有 app.yml、jhipster-rigster.yml、kafka.yml 和 ..etc

标签: java spring-boot docker


【解决方案1】:

根据docker build docs,如果您指定的 Dockerfile 不是完全命名为 Dockerfile 或不在当前目录中,则应使用 -f 标志。

错误是告诉您提供了无效的构建上下文。构建上下文应该是一个目录,其中包含您需要将COPYADD 放入映像中的任何内容。您拥有的任何 COPY 命令都将与构建上下文路径相关。

以下是使用 -f 标志和构建上下文的方法:

sudo docker build -t TAGNAME -f /path/to/dockerfile /path/to/build/context

对您而言,这实际上取决于 Dockerfile 的内容,但您的完整命令可能是这样的:

sudo docker build -t jhipster -f /home/abed/project/microServies/StudentApp/src/main/docker/dockerfile1 /home/abed/project/microServies/StudentApp

【讨论】:

  • 在哪里可以找到构建/上下文
  • @AbdalrhmanAlkraien 这取决于 Dockerfile 的内容。它可能是您的源代码的根目录。您也可以发布您的 Dockerfile,这可能会有所帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-20
  • 1970-01-01
  • 1970-01-01
  • 2021-06-09
  • 2021-08-07
  • 2020-03-23
相关资源
最近更新 更多