mac m2芯片docker打镜像

这里写自定义目录标题

    • 问题
    • 解决

问题

本机是m2芯片是arm64的架构,gs线上运行环境不支持!!!

解决

看了很多文章,用docker run --platform的,线上也不给你那么运行啊。。最后,就是先拉取amd64的镜像版本,再去打包。
比如我的项目是分为前后端两个文件夹的,目录大致如下:

 root(项目根目录)
 	back
 		Dockerfile
 	front
 		Dockerfile
 		index.html
 		...
 	docker-compose.yml

前端项目下的Dockerfile文件,内容如下:

# 标准基础镜像(构建阶段)
FROM node:16.17.0-alpine3.15 AS builder
....

# 标准基础镜像(部署阶段)
FROM nginx:latest
....

docker-compose.yml,内容如下:

version: '3.7'
services:
  back:
    build: ./back
  front:
 	build:
 		context: .
 		dockerfile: Dockerfile
 		...
  1. 因为前端的dockerfile这个文件是分两段运行的,所以需要分别拉取amd64版本的基础镜像
docker pull --platform linux/amd64 node:16.17.0-alpine3.15 
docker pull --platform linux/amd64 nginx 
  1. 查看镜像版本的命令,如下:
docker inspect [image-name] | grep Arch 
  1. 在项目根目录下,执行build
docker-compose build front
  1. 最后打出来的front镜像,就是amd64版本的镜像。

你可能感兴趣的:(docker,macos,m1m2,arm64,amd64)