我无法从dockerfile文件夹的外部复制文件。docker compose build出现错误:
failed to compute cache key: failed to walk /var/lib/docker/tmp/buildkit-mount196528245/target: lstat /var/lib/docker/tmp/buildkit-mount196528245/target: no such file or directory
ERROR: Service 'discovery' failed to build : Build failed
有文件夹结构
discovery
-docker
Dockerfile
-target
discovery.jar
这是Dockerfile
FROM openjdk:11
ARG JAR_FILE=../target/discovery.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java", "-jar", "app.jar"]
这是我的docker compose文件
services:
discovery:
build: ./discovery/docker
ports:
- 8761:8761
非常感谢你的帮助。
正如在AKX回答中已经指出的,你不能移出上下文(向上)。我只是想表明,可以通过提供正确的参数来构建你的应用程序。既然你这么说,你就不能离开docker文件夹。
discovery:
build:
context: discovery
Dockerfile: docker/Dockerfile
args:
JAR_FILE: target/discovery.jar
关键是使用父目录发现作为上下文,但是使用子目录docker中的Dockerfile。请注意,在使用comush时,这是相对于构建上下文的。
这是故意的。
Docker构建上下文(与Dockerfile中的指令一起发送到Docker守护程序的tarball)是从运行docker build
的目录中计算的。
你需要做的
$ docker build -f docker/Dockerfile
在发现
中,使用
ARG JAR_FILE=./target/discovery.jar
(不是...
)(或传递相应的--build-arg
)。
我正在编写来构建应用程序。我知道您可以使用 (请参见将文件从Docker容器复制到主机),但我只想运行 在Dockerfile中是否有一个命令可以用于从容器中复制到主机中?像的反义词吗?
我正在编写一个Dockerfile来构建一个应用程序。我知道你可以用 (请参阅将文件从Docker容器复制到主机),但我想只运行 并让它将我的创建的构建工件转储到我的主机文件系统的某个地方。 Dockerfile中是否有可以用于从容器复制到主机的命令?与复制相反?
本文向大家介绍Nodejs 复制文件/文件夹的方法,包括了Nodejs 复制文件/文件夹的方法的使用技巧和注意事项,需要的朋友参考一下 1.使用fs复制文件 使用fs对象的readFileSync,writeFileSync方法进行读写操作复制 cp.js 这样就可以复制from.js到to.js 2.使用linux命令复制文件 这里使用了process对象,process对象是一个node的全局
我有一个多模块maven项目,我想为每个模块创建和发布一个映像,除了一个通用的实用程序模块,它是所有其他模块的依赖项。 项目结构如下: 为了构建一个fox示例中的module\u,我需要将common\u module文件夹也复制到容器中,并首先在common文件夹上运行mvn install。如果已经构建好,我可以在模块a
我有一个Windows文件夹结构和文件,如下所示 c:\源文件\file1.txt c:\源文件夹\subfolder1\file2.txt c:\源文件夹\子文件夹2\file3.txt 我想复制所有文件到目标文件夹,如下所示 c:\DestinationFile\file1.txt c:\DestinationFile\file2.txt c:\DestinationFile\file3.tx