我正在尝试在我的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集群构建映像?
1条答案
按热度按时间c90pui9n1#
如何使用Docker和Buildx进行本地构建
如果是这种情况,我如何从我的mac m1为AKS集群构建映像?
https://docs.docker.com/build/building/multi-platform/
在命令行中,使用足够新的Docker版本,您可以使用
buildx
命令和--platform linux/amd64
标志为不同的平台架构(如aarch64平台上的x86_64)构建Docker映像:这将生成可在运行体系结构x86_64映像的群集上运行的映像。你应该能够将标记推送到Azure容器存储库,然后在AKS上运行。