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

Docker/docker-compose部署正常 K8s部署报exec格式错误解决方案

问题场景

现有基于以下Dockerfile构建的应用镜像:

FROM python:latest

WORKDIR /app

COPY ./requirements.txt .

RUN pip install -r requirements.txt

EXPOSE 5000

COPY . .

CMD ["uvicorn", "api.app:app", "--port", "5000", "--host", "0.0.0.0"]
st", "0.0.0.0"]

该镜像通过docker run -it piotrostr/premiere命令可正常启动,使用docker-compose部署也无异常,但使用如下Kubernetes Deployment清单创建部署时:

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: premiere-api
spec:
  selector:
    matchLabels:
      name: premiere-api
  replicas: 3
  template:
      metadata:
        labels:
          name: premiere-api
      spec:
        containers:
          - name: premiere-api
            image: docker.io/piotrostr/premiere
            env:
              - name: POSTGRES_PASSWORD
                valueFrom:
                  secretKeyRef:
                    name: premiere-secrets
                    key: POSTGRES_PASSWORD
                    optional: false
              - name: POSTGRES_USERNAME
                valueFrom:
                  secretKeyRef:
                    name: premiere-secrets
                    key: POSTGRES_USERNAME
                    optional: false
              - name: POSTGRES_HOST
                value: db
            ports:
              - containerPort: 5000
        imagePullSecrets:
          - name: regcred
        restartPolicy: Always

容器启动失败直接退出,抛出错误:

exec /usr/local/bin/uvicorn: exec format error

此前在开启CGO编译的场景下曾遇到过同类错误,禁用CGO后即可解决;本次构建镜像时已显式添加--platform linux/amd64参数指定构建平台,但错误仍然存在。

解决方案

经排查,该问题核心原因是容器镜像与Kubernetes节点的CPU架构不匹配。虽然构建时指定了平台参数,但默认的python:latest基础镜像存在架构适配拉取异常,直接将基础镜像替换为明确适配amd64架构的amd64/python镜像即可修复,修改后的Dockerfile基础镜像配置如下:

FROM amd64/python:latest

如果使用skaffold完成镜像构建与部署流程,还需要在skaffold配置中显式指定目标构建平台,避免构建过程拉取错误架构的镜像层,配置示例如下:

...
build:
  artifacts:
    ...
    docker:
      dockerfile: Dockerfile
    platforms: ["linux/amd64"]
...

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 19:03:31