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

Dockerfile执行报错:unknown instruction: APT-GET求助

问题解决:Dockerfile中unknown instruction: APT-GET错误

错误根源

你的Dockerfile第一阶段的RUN命令存在语法错误:apt-get upgrade -y && |这一行多了一个多余的竖线|,破坏了命令的连续性,导致Docker将下一行的apt-get误识别为独立的Docker指令,而非RUN命令的延续部分,从而抛出unknown instruction: APT-GET错误。

此外,Dockerfile还有两个逻辑问题:

  • 你在容器内克隆了Git仓库,但后续COPY指令试图从宿主机构建上下文复制仓库文件,这是无效操作(宿主机不存在该路径),应直接使用容器内克隆好的文件。
  • mvn clean install已包含package阶段操作,无需单独执行mvn package。

修正后的Dockerfile

FROM maven:3.8.5-openjdk-17 AS MAVEN_BUILD
# 修复语法错误:移除多余的|符号
RUN apt-get update && \
    apt-get upgrade -y && \
    apt-get install git -y

WORKDIR /repositorio/
RUN git clone https://gitlab.com/booking_hub/grupo_04_bookinghub.git

# 直接使用容器内克隆的项目文件,无需从宿主机COPY
WORKDIR /repositorio/grupo_04_bookinghub/backend/APIrest/APIrest/
# 合并mvn命令,clean install已包含package
RUN mvn clean install -Dmaven.test.skip=true

FROM openjdk:17-slim
WORKDIR /app
# 从构建阶段复制生成的jar包
COPY --from=MAVEN_BUILD /repositorio/grupo_04_bookinghub/backend/APIrest/APIrest/target/APIrest-*.jar /app/APIrest.jar
ENTRYPOINT ["java","-Dspring.profiles.active=dev", "-jar", "APIrest.jar"]

额外优化建议

  1. Ansible Playbook优化:你的handler中的Criar rede servers不会自动触发,建议改为独立task或添加notify触发;同时用docker_compose模块替代shell命令,更符合Ansible最佳实践:
- name: "System: Executando o docker compose da aplicação Backend"
  become: true
  docker_compose:
    project_src: /home/ubuntu/Backend
    files: docker-compose-java.yml
    state: present
  1. Docker构建缓存优化:先复制pom.xml再执行mvn命令,利用Docker构建缓存,避免代码变更时重复下载依赖:
FROM maven:3.8.5-openjdk-17 AS MAVEN_BUILD
RUN apt-get update && \
    apt-get upgrade -y && \
    apt-get install git -y

WORKDIR /repositorio/
RUN git clone https://gitlab.com/booking_hub/grupo_04_bookinghub.git

WORKDIR /repositorio/grupo_04_bookinghub/backend/APIrest/APIrest/
# 先复制pom.xml,缓存依赖下载层
COPY pom.xml .
RUN mvn dependency:go-offline

# 再复制源码
COPY src ./src
RUN mvn clean install -Dmaven.test.skip=true

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 11:50:34