我不使用码头多阶段建造。
我已经用Jenkins管道构建了maven to jar文件。
mvn -f /home/app/pom.xml clean package -Dmaven.test.skip
结果文件位于/home/app/target/myfile.jar
在那之后,我想包括这个JAR文件,同时构建docker映像。
我在dockerfile中使用此命令。
COPY /home/app/target/myfile.jar /myfile.jar
但我在构建docker时出错。
COPY failed: stat /var/lib/docker/tmp/docker-builder199377670/home/app/target/myfile.jar: no such file or directory
我明白绝对的道路是动态的。
请帮忙提个建议。如何指定JAR文件的位置。
编辑:已将文件移至与Dockerfile相同的路径,但仍不起作用。
我尝试使用管道复制文件,并验证该文件与Dockerfile位于同一路径。
2022-09-16 12:06:36 + cp /home/app/target/myapp-0.0.1-SNAPSHOT.jar sourceCode/myapp-0.0.1-SNAPSHOT.jar
2022-09-16 12:06:36 + cd sourceCode
2022-09-16 12:06:36 + ls
2022-09-16 12:06:36 Dockerfile
2022-09-16 12:06:36 myapp-0.0.1-SNAPSHOT.jar
在Dockerfile中,我添加了这个复制命令。
COPY /myapp-0.0.1-SNAPSHOT.jar /myapp-docker.jar
但当建造码头时。它仍然找不到源文件。
2022-09-16 12:06:53 Step 3/5 : COPY /myapp-0.0.1-SNAPSHOT.jar /myapp-docker.jar
2022-09-16 12:06:53 COPY failed: stat /var/lib/docker/tmp/docker-builder691591658/myapp-0.0.1-SNAPSHOT.jar: no such file or directory
1条答案
按热度按时间bsxbgnwa1#
JAR文件的绝对路径必须引用docker构建上下文中的绝对路径,而不是主机的绝对路径。您要复制到docker镜像中的所有资源都必须引用Dockerfile的位置。
例如,如果Docker文件在
/home
文件夹中,则它是根文件夹,即扩展坞构建上下文中的/
,COPY
命令将为:有关详细信息,请查看此page。