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

Docker Compose执行up命令失败提示Service 'nginx' failed to build求助

问题排查及解决方案

核心问题定位

结合报错信息和你提供的Dockerfile内容,共有三处明显错误会导致构建失败:

  1. 前端Dockerfile缺失基础声明:你贴出的前端Dockerfile没有定义开头的基础镜像,也没有声明builder构建阶段,但末尾用到了COPY --from=builder /usr/src/app/build ./build的多阶段构建语法,会直接触发构建逻辑错误。
  2. Nginx基础镜像拉取失败:报错提示找不到对应版本的nginx镜像manifest,nginx:1.19.0-alpine是已停止维护的老旧版本,大部分镜像源已经下架了对应版本的镜像层。
  3. 如果你是用docker-compose统一编排三个服务,还要确认Nginx Dockerfile如果需要拷贝前端构建产物,不能直接跨Dockerfile使用--from参数引用前端的构建阶段,必须先构建前端镜像再从对应镜像中拷贝文件。

修复步骤

  • 首先补全前端Dockerfile的开头部分,示例如下:
# 新增基础镜像和builder阶段声明
FROM node:16-alpine as builder
WORKDIR /usr/src/app
# 以下接你原本的前端Dockerfile内容
COPY ./react_app/package.json .
RUN apk add --no-cache --virtual .gyp \
        python \
        make \
        g++ \
    && npm install \
    && apk del .gyp

COPY ./react_app .

ARG API_SERVER
ENV REACT_APP_API_SERVER=${API_SERVER}
RUN REACT_APP_API_SERVER=${API_SERVER} \
  npm run build

WORKDIR /usr/src/app
RUN npm install -g serve
COPY --from=builder /usr/src/app/build ./build
  • 替换Nginx Dockerfile的基础镜像为仍在维护的稳定版本,将第一行修改为:
FROM nginx:1.24-alpine
  • 清理本地Docker构建缓存,避免失效缓存影响构建:
docker builder prune -a
  • 手动测试基础镜像拉取是否正常:
docker pull nginx:1.24-alpine

如果拉取失败,检查本地Docker的镜像源配置,替换为国内可用的镜像源即可。

  • 若仍报错,可临时关闭BuildKit测试构建:
# 用docker-compose构建的情况
DOCKER_BUILDKIT=0 docker-compose build nginx

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 06:45:03