Spring Boot docker-compose up给出'无法读取dockerfile:来自发送方的错误'

yhived7q  于 12个月前  发布在  Spring
关注(0)|答案(2)|浏览(229)

尝试简单地dockerize我的mongodb和spring Boot 应用程序。有很多的斗争,并认为我几乎有它运行,比终端打我这个错误:

Building user
[+] Building 0.0s (1/2)
 => ERROR [internal] load build definition from Dockerfile                                                                                                                         0.0s
 => => transferring dockerfile: 121B                                                                                                                                               0.0s
------
 > [internal] load build definition from Dockerfile:
------
failed to solve with frontend dockerfile.v0: failed to read dockerfile: error from sender: walk \\?\C:\Users\ZRC\Documents\GitHub\s6-kwetter-backend\user\Dockerfile: The system cannot
find the path specified.
ERROR: Service 'user' failed to build : Build failed

字符串
Dockerfile(位于子目录; user-module):

FROM openjdk:11
EXPOSE 8081
ADD target/user-module-docker.jar user-docker.jar
CMD ["java", "-jar", "user-docker.jar"]


docker-compose.yml(位于包含多个模块/微服务的主目录中):

version: '3.8'

services:
  user:
    build: ./user/Dockerfile
    restart: unless-stopped
    container_name: user-ms
    ports:
    - 8081:8080
  mongodb:
    image: mongo
    restart: always
    container_name: mongodb
    ports:
      - 27017:27017


就像它说指定的路径找不到,但它确实存在,那么我会在哪里出错呢?

ulydmbyx

ulydmbyx1#

错误是告诉你Dockerfile没有找到,因为路径不存在。这是因为它试图将路径输入为文件夹。
系统找不到指定的路径。
这是因为你在compose build语法中犯了一个错误。有两种方法可以使用它。

1.简单形式:

这是使用./users/作为上下文,期望Dockerfile在此目录中。

user:
  build: ./user

字符串

2.复杂形式:

user:
  build:
    context: ./
    dockerfile: ./users/Dockerfile


这可以让你分离上下文和Dockerfile所在的位置。在这个例子中,当前文件夹被用作上下文,Dockerfile取自./users/Dockerfile。当你的Dockerfile有不同的名称时,它也很有用。即Dockerfile.dev。
注意这只是一个例子,我不知道这在你的项目中是否有意义。你需要知道什么样的上下文是正确的。

context是什么意思?

docker build command从Dockerfile和“context”构建Docker镜像。构建的context是位于指定PATH或URL中的文件集。构建过程可以引用上下文中的任何文件。例如,您的构建可以使用COPY指令来引用上下文中的文件。
例如:

docker build --file /path/to/Dockerfile /path/to/context

pgky5nke

pgky5nke2#

尝试将Dockerfile路径中的符号“”更改为“/”

相关问题