在M1中构建Docker映像以部署在aks群集中

yacmzcpb  于 2023-03-17  发布在  Docker
关注(0)|答案(1)|浏览(141)

我正在尝试在我的M1中部署以下Docker映像:

FROM node:14

WORKDIR /usr/src/app

COPY package.json .
COPY package-lock.json .

RUN npm install --production

COPY index.js .

CMD ["node", "index.js"]

现在,当我尝试使用以下命令在Azure aks群集中部署映像时:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: node-hello-world
  namespace: "default"
  labels:
    app: node-hello-world
spec:
  replicas: 1
  selector:
    matchLabels:
      app: node-hello-world
  template:
    metadata:
      labels:
        app: node-hello-world
    spec:
      containers:
        - name: node-hello-world
          image: acrappstrodev.azurecr.io/node-hello-world:v1
          ports:
            - containerPort: 3000

我收到一个CrashLoopBackOff错误。
深入研究这个问题,我看到了一些类似于在M1中构建映像的东西,M1是AKS集群上基于ARM的系统,架构为x86_64,不兼容。
如果是这种情况,我如何从我的mac m1为AKS集群构建映像?

c90pui9n

c90pui9n1#

如何使用Docker和Buildx进行本地构建

如果是这种情况,我如何从我的mac m1为AKS集群构建映像?
https://docs.docker.com/build/building/multi-platform/
在命令行中,使用足够新的Docker版本,您可以使用buildx命令和--platform linux/amd64标志为不同的平台架构(如aarch64平台上的x86_64)构建Docker映像:

docker buildx build --platform linux/amd64 -t <YOUR IMAGE TAG> .

这将生成可在运行体系结构x86_64映像的群集上运行的映像。你应该能够将标记推送到Azure容器存储库,然后在AKS上运行。

相关问题