尝试简单地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
型
就像它说指定的路径找不到,但它确实存在,那么我会在哪里出错呢?
2条答案
按热度按时间ulydmbyx1#
错误是告诉你Dockerfile没有找到,因为路径不存在。这是因为它试图将路径输入为文件夹。
系统找不到指定的路径。
这是因为你在compose build语法中犯了一个错误。有两种方法可以使用它。
1.简单形式:
这是使用./users/作为上下文,期望Dockerfile在此目录中。
字符串
2.复杂形式:
型
这可以让你分离上下文和Dockerfile所在的位置。在这个例子中,当前文件夹被用作上下文,Dockerfile取自./users/Dockerfile。当你的Dockerfile有不同的名称时,它也很有用。即Dockerfile.dev。
注意这只是一个例子,我不知道这在你的项目中是否有意义。你需要知道什么样的上下文是正确的。
context是什么意思?
docker build command从Dockerfile和“context”构建Docker镜像。构建的context是位于指定PATH或URL中的文件集。构建过程可以引用上下文中的任何文件。例如,您的构建可以使用COPY指令来引用上下文中的文件。
例如:
型
pgky5nke2#
尝试将Dockerfile路径中的符号“”更改为“/”