首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >集装箱部署良好与码头和码头组合,失败与库伯奈特。

集装箱部署良好与码头和码头组合,失败与库伯奈特。
EN

Stack Overflow用户
提问于 2022-06-07 16:11:17
回答 1查看 61关注 0票数 0

下面有一个带有Dockerfile的码头集装箱:

代码语言:javascript
运行
复制
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"]

但是,当使用清单计划部署时,它运行得很好:

代码语言:javascript
运行
复制
---
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

我遇到了一个错误:

代码语言:javascript
运行
复制
exec /usr/local/bin/uvicorn: exec format error

这使得集装箱出口。使用docker run -it piotrostr/premiere运行容器与使用docker-compose是一样的。

以前有人遇到过这个问题吗?在启用CGO的情况下,有一次发生了这种情况,但是禁用它会导致exec错误消失。我试图使用--platform linux/amd64显式地构建映像,但是上面的错误仍然存在。

解出

这个平台确实错了,解决方案是使用amd64/python映像而不是常规的python映像。

代码语言:javascript
运行
复制
FROM amd64/python:latest

如果使用skaffold -应该确保配置具体的平台。下面的例子。

代码语言:javascript
运行
复制
...
build:
  artifacts:
    ...
    docker:
      dockerfile: Dockerfile
    platforms: ["linux/amd64"]
...
EN

回答 1

Stack Overflow用户

发布于 2022-06-07 16:25:00

似乎你正在为一个不同的平台(f.e。与执行环境(f.e )相比,ARM在M1 mac或raspberry pi上运行。amd64)。

确保使用正确的目标平台进行构建,或者一次构建多个映像,以便容器运行时能够为执行平台提取正确的映像。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72534458

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档