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

如何从GitHub仓库构建Docker镜像?构建时apk安装命令执行失败求助

解决Docker构建中apk add git python失败的问题

问题根源

你使用的mhart/alpine-node:6.17基于的Alpine Linux版本过于老旧(对应Alpine 3.12分支),该版本的官方软件源已停止维护,同时此版本中不存在名为python的直接安装包,需指定安装python2(当时Alpine默认Python版本为2)。

修复方案

修改Dockerfile中的依赖安装段,做以下调整:

  • 替换失效的官方源为对应版本的存档源
  • 明确安装python2而非python
  • 合并RUN指令以减少镜像层数,添加--no-cache避免缓存冗余

修改后的Dockerfile片段

# Install base dependencies
RUN echo "http://dl-cdn.alpinelinux.org/alpine/v3.12/main" > /etc/apk/repositories && \
    echo "http://dl-cdn.alpinelinux.org/alpine/v3.12/community" >> /etc/apk/repositories && \
    apk update --no-cache && \
    apk add --no-cache git python2

完整修复后的Dockerfile

FROM mhart/alpine-node:6.17

ENV NODE_ENV "development"
ENV NODE_PATH "/usr/src/app/node_modules"

# Install base dependencies
RUN echo "http://dl-cdn.alpinelinux.org/alpine/v3.12/main" > /etc/apk/repositories && \
    echo "http://dl-cdn.alpinelinux.org/alpine/v3.12/community" >> /etc/apk/repositories && \
    apk update --no-cache && \
    apk add --no-cache git python2

# Prepare app directory
WORKDIR /usr/src/app
COPY . /usr/src/app
RUN npm install
VOLUME /tmp/specs

# Start the app
ENTRYPOINT ["/usr/src/app/node_modules/dredd/bin/dredd"]

补充说明

  • 老旧Alpine版本的官方源已归档,必须替换为对应版本的存档源才能正常拉取安装包
  • 若你的代码实际依赖Python 3,可将python2替换为python3(该版本Alpine仓库中存在此包)
  • 使用--no-cache可避免在镜像中残留apk缓存,有效减小镜像体积

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 08:57:04