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

Docker构建镜像时遇/bin/sh: zypper: not found错误求助

问题分析与解决

错误核心:你使用的eclipse-temurin:11-jdk-alpine是基于Alpine Linux的镜像,Alpine默认用apk作为包管理器,而zypper是openSUSE/SUSE系列系统的包管理器,容器内自然找不到该命令。

另外还有两个细节问题需要修正:

  • 多阶段构建的第一个FROM maven:3.8.4 AS maven没有被后续阶段引用,属于冗余代码(如果不需要maven构建可直接删除);
  • 单独的RUN cd ...指令不会影响后续RUN的工作目录(每个RUN是独立的shell进程),用WORKDIR设置持久化工作目录更可靠。

修正后的Dockerfile

基础版本(仅满足git克隆需求)

# 若不需要maven构建,直接删除此行
# FROM maven:3.8.4 AS maven
FROM eclipse-temurin:11-jdk-alpine

# 设置持久化工作目录,替代mkdir+cd的组合
WORKDIR $HOME/images/lib/

# 使用Alpine的apk包管理器安装git
RUN apk update && apk add --no-cache git

# 执行git克隆
RUN git clone MY_GIT_URL

进阶版本(如果需要maven构建+多阶段优化)

如果你的项目需要maven编译,可正确使用多阶段构建减小最终镜像体积:

# 第一阶段:maven构建
FROM maven:3.8.4 AS builder
WORKDIR /app
COPY pom.xml .
RUN mvn dependency:go-offline
COPY src/ ./src/
RUN mvn package -DskipTests

# 第二阶段:运行环境
FROM eclipse-temurin:11-jdk-alpine
WORKDIR $HOME/images/lib/
RUN apk update && apk add --no-cache git
RUN git clone MY_GIT_URL
# 从构建阶段复制编译好的jar包
COPY --from=builder /app/target/*.jar ./app.jar

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 14:40:30