Docker Compose构建Python镜像失败:权限被拒或仓库不存在
Docker构建Django API服务失败的解决方案
问题概述
在Windows 10环境中执行docker-compose -f local.yml up -d --remove-orphans构建Django REST API的api服务时失败,报错显示拉取docker.io/library/python-build-stage:latest镜像时权限不足或仓库不存在。已验证单独拉取python:3.9-slim-bullseye镜像正常,重新登录Docker也无法解决。
关键错误信息
PS C:\Users\...\MasterDjangoRESTFrameworkWithDocker\authors-haven-api\authors-src> docker-compose -f local.yml up -d --remove-orphans Building api [+] Building 1.2s (9/18) => [internal] load build definition from Dockerfile 0.1s => => transferring dockerfile: 32B 0.0s => [internal] load .dockerignore 0.1s => => transferring context: 34B 0.0s => [internal] load metadata for docker.io/library/python:3.9-slim-bullseye 0.0s => [internal] load build context 0.2s => => transferring context: 5.14kB 0.1s => [python 1/1] FROM docker.io/library/python:3.9-slim-bullseye 0.0s => ERROR FROM docker.io/library/python-build-stage:latest 0.9s => => resolve docker.io/library/python-build-stage:latest 0.9s => CACHED [python-run-stage 1/11] WORKDIR /app 0.0s => CANCELED [python-run-stage 2/11] RUN apt-get update && apt-get install --no-install-recommends -y libpq-dev gettext && apt-get purge -y 1.0s => [auth] library/python-build-stage:pull token for registry-1.docker.io 0.0s ------ > FROM docker.io/library/python-build-stage:latest: ------ failed to load cache key: pull access denied, repository does not exist or may require authorization: server message: insufficient_scope: authorization failed ERROR: Service 'api' failed to build : Build failed
问题定位
检查Django Dockerfile发现构建阶段名称存在拼写错误:
# 错误的构建阶段命名 FROM python as pthyon-build-stage
由于此处将python-build-stage误写为pthyon-build-stage,后续执行COPY --from=python-build-stage时,Docker无法找到本地定义的构建阶段,默认尝试从公共Docker Hub仓库拉取不存在的python-build-stage镜像,因此触发上述错误。
修复方案
修改Django Dockerfile中的构建阶段名称,纠正拼写错误:
# 正确的构建阶段命名 FROM python as python-build-stage
保存修改后,重新执行docker-compose -f local.yml up -d --remove-orphans即可完成api服务的构建。
内容的提问来源于stack exchange,提问作者justin107d
相关产品推荐
相关产品推荐

