You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker Compose构建失败:changes out of order报错求助

解决Docker Compose构建报错:changes out of order: "target/diplomAPI-0.0.1-SNAPSHOT.jar" ""

问题背景

执行docker-compose build时触发报错:failed to solve: changes out of order: "target/diplomAPI-0.0.1-SNAPSHOT.jar" ""。已确认diplomAPI-0.0.1-SNAPSHOT.jar存在于target目录,Dockerfile与docker-compose.yml位于同一目录,尝试删除ARG行、分离配置文件目录等操作均无效。

原Dockerfile内容

FROM openjdk:alpine
ARG JAR_FILE=target/*.jar
COPY ./target/diplomAPI-0.0.1-SNAPSHOT.jar app.jar

ENTRYPOINT ["java", "-jar", "/app.jar"]

原docker-compose.yml内容

version: '3'
services:
  app:
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - "8080:8080"
    depends_on:
      - db
  db:
    image: postgres
    restart: always
    ports:
      - "5432:5432"
    environment:
      POSTGRES_DB: mobilka
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: 12345

完整错误日志

PS C:\Users\extre\IdeaProjects\diplomAPI> docker-compose build
[+] Building 0.0s (0/0)  docker:default
[+] Building 0.0s (0/0)  docker:defaultr reading preface from client //./pipe/docker_engine: file has already been closed
[+] Building 2.2s (6/7)                                                                                                                                                                                              docker:default
 => [app internal] load build definition from Dockerfile                                                                                                                                                                       0.0s
 => => transferring dockerfile: 180B                                                                                                                                                                                           0.0s 
 => [app internal] load metadata for docker.io/library/openjdk:alpine                                                                                                                                                          2.0s 
 => [app auth] library/openjdk:pull token for registry-1.docker.io                                                                                                                                                             0.0s
 => [app internal] load .dockerignore                                                                                                                                                                                          0.0s
 => => transferring context: 2B                                                                                                                                                                                                0.0s 
 => ERROR [app internal] load build context                                                                                                                                                                                    0.0s 
 => => transferring context: 57B                                                                                                                                                                                               0.0s 
 => [app 1/2] FROM docker.io/library/openjdk:alpine@sha256:1fd5a77d82536c88486e526da26ae79b6cd8a14006eb3da3a25eb8d2d682ccd6                                                                                                    0.0s 
------
 > [app internal] load build context:
------
failed to solve: changes out of order: "target/diplomAPI-0.0.1-SNAPSHOT.jar" ""

解决方法

  • 检查.dockerignore文件:这个错误大多因为构建上下文被错误过滤。打开项目根目录下的.dockerignore,确保没有target/或diplomAPI-0.0.1-SNAPSHOT.jar这类条目,若存在则删除。
  • 简化Dockerfile指令:原ARG参数未实际使用,直接简化COPY路径,避免路径歧义。修改后的Dockerfile如下:
FROM openjdk:alpine
COPY target/diplomAPI-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT ["java", "-jar", "/app.jar"]
  • 清理Docker构建缓存:缓存异常可能导致此类问题,执行以下命令清理缓存后重新构建:
docker builder prune
docker-compose build
  • 确认工作目录:确保执行docker-compose build时,当前终端所在目录是项目根目录(即包含target文件夹的目录),若不是则先通过cd命令切换到对应目录。

内容的提问来源于stack exchange,提问作者Andy Good

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 05:12:43