我正在try 将一个带有python应用程序的停靠容器部署到Azure Kubernetes服务.在部署并查看新Pod上的日志(log)后,我看到以下错误:

Exec/usr/bin/sh:EXEC格式错误

我正在使用以下docker Buildx命令在Mac上构建容器:

docker buildx build --platform linux/x86_64 -t <my username>/ingest .  

我的Docker文件具有以下标头

FROM --platform=linux/x86_64 python:3.11

我的部署YAML如下所示,似乎可以很好地获取映像(我只是使用了Azure文档中的一些内容作为模板).

apiVersion: apps/v1
kind: Deployment
metadata:
  name: ingest
  namespace: default
spec:
  replicas: 1
  selector:
    matchLabels:
      bb: ingest
  template:
    metadata:
      labels:
        bb: ingest
    spec:
      containers:
      - name: ingest
        image: <my username>/ingest:0.0.1
        imagePullPolicy: Always

当我在当地判断图像时,我看到

"Architecture": "amd64",
"Os": "linux",

我假设默认的芯片架构是x86_64,但不确定.我还用默认的芯片架构和操作系统构建了映像,并在本地进行了测试-它工作得很好.我是K8和Azure的新手.也许,我遗漏了一些明显的东西.有没有办法在我的配置中指定芯片架构和操作系统?如果我不指定,缺省值是多少?

推荐答案

当容器在非为其构建的体系 struct 中执行时,将出现以下错误.

exec /usr/bin/sh: exec format error

缺省值将是运行构建包的os Arch的值.更多有关如何为其他Arch构建映像的详细信息将在docker buildx documentation节中介绍.

在您的例子中,您可以使用下面哪个构建映像来构建arm64(Mac Os AArch64)和x86 Arch

docker buildx build --platform=linux/amd64,linux/arm64

Python相关问答推荐

当密钥是复合且唯一时,Pandas合并抱怨标签不唯一

运行回文查找器代码时发生错误:[类型错误:builtin_index_or_system对象不可订阅]

Pystata:从Python并行运行stata实例

从收件箱中的列中删除html格式

在Pandas DataFrame操作中用链接替换'方法的更有效方法

Vectorize多个头寸的止盈/止盈回溯测试pythonpandas

处理带有间隙(空)的duckDB上的重复副本并有效填充它们

我如何使法国在 map 中完全透明的代码?

Python,Fitting into a System of Equations

pyscript中的压痕问题

递归访问嵌套字典中的元素值

在pandas中使用group_by,但有条件

在代码执行后关闭ChromeDriver窗口

人口全部乱序 - Python—Matplotlib—映射

用fft计算指数复和代替求和来模拟衍射?

有没有办法让Re.Sub报告它所做的每一次替换?

将像素信息写入文件并读取该文件

大型稀疏CSR二进制矩阵乘法结果中的错误

如何在PYTHON中向单元测试S Side_Effect发送额外参数?

在聚合中使用python-polars时如何计算模式