【解决了一个小问题】macbook m1上的docker build问题
作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!
1. docker hub限制的问题
因为docker build有问题,导致多次从docker hub拉去镜像,导致了超限:
docker pull amd64/alpine:3.12.0
You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limits.
官方站点的介绍文章为:Understanding Docker Hub Rate Limiting
看起来要充会员才行!!!他们挺缺钱的,心疼一下他们,不过我更缺啊。
终于在腾讯云上找到了同样的镜像:
docker pull ccr.ccs.tencentyun.com/edgeprivate/alpine-amd64:3.12
然后基础镜像依赖上面的镜像就ok了!
2. m1芯片build成了ARM版本的问题
Dockerfile的内容大致如下:
FROM alpine:3.12.0
ENV PATH /usr/local/bin:$PATH
ENV LANG C.UTF-8
ENV TZ=Asia/Shanghai
// 还有更多
执行编译命令:
docker build -f Dockerfile -t ccr.ccs.tencentyun.com/ahfuzhang/victoria-metrics-starter:v1.72.2 . --network=host
镜像推送到腾讯云后,启动容器出现如下错误:
standard_init_linux.go:228: exec user process caused: exec format error
搜索到了这篇文章说明这个问题:docker运行容器报错standard_init_linux.go:211: exec user process caused “exec format error“的可能解决办法
由此看来,m1芯片的macbook上打包镜像,默认会打包为ARM格式的
3. m1芯片上,docker build amd64格式的镜像
修改dockerfile如下:
FROM --platform=linux/amd64 ccr.ccs.tencentyun.com/edgeprivate/alpine-amd64:3.12
ENV PATH /usr/local/bin:$PATH
ENV LANG C.UTF-8
ENV TZ=Asia/Shanghai
然后docker build中也指定platform:
docker build -f Dockerfile -t ccr.ccs.tencentyun.com/ahfuzhang/victoria-metrics-starter:v1.77.2 . \
--network=host \
--platform=linux/amd64
一开始报错如下:
failed to solve with frontend dockerfile.v0: failed to create LLB definition: pull access denied, repository does not exist or may require authorization: server message: insufficient_scope: authorization failed
还好也搜索到了文章:关于M1 docker build 报错

修改后重启docker,build成功!
【解决了一个小问题】macbook m1上的docker build问题的更多相关文章
- 如何在MacBook M1上无缝切换Win11和MacOS?
2020年,MacBook M1发布后,由于其夸张到离谱的性能表现,苹果又一次在知名度和销量上真正实现了双丰收. 抛开M1和MacOS其他的华丽特色不谈,很多习惯了Windows系统的同学,在换了这台 ...
- 【解决了一个小问题】golang protocol buffers 3中去掉json标签中的omitempty
参考了这篇帖子:golang protobuf从生成的json标记中删除omitempty标记 由于是在windows上开发,因此写了一个python脚本来解决: remove_tag.py impo ...
- 【解决了一个小问题】go.mod文件中引用另一个库,总会自动拉取新版本
我的项目依赖某个旧的公共库: require ( git.xxx.com/myprj/mylib v0.0.43 ) 可以编译的时候,系统总会自动加上这样的路径: require ( git.xxx. ...
- 【解决了一个小问题】golang gin框架中的模板,让模板中的参数不要做HTML转义
代码中使用了类似的方式来向模板填充参数: c.HTML(200, "list.html", gin.H{"data":builder.String()}) 模板 ...
- 【解决了一个小问题】alpine镜像中,busybox的date命令获取昨天的日期
直接上答案: date -d@"$(( `date +%s`-86400))" +"%Y-%m-%d"
- 【解决了一个小问题】如何展示VictoriaMetrics组件上报的bucket数据
VM体系还真的是不一(he)样(qun), 它上报的监控数据长这样: vmagent_remotewrite_block_size_rows_bucket{vmrange="2.448e+0 ...
- 【解决了一个小问题】golang build中因为缓存文件损坏导致的编译错误
编译的过程中出现了一个吓人的错误: GOROOT=C:\Go #gosetup GOPATH=C:\Users\ahfuzhang\go #gosetup C:\Go\bin\go.exe mod t ...
- 【解决了一个小问题】golang中引用一个路径较长的库,导致goland中出现"module contains a go.mod file, so major version must be compatible: should be v0 or v1, not v2"
在项目中的go.mod文件中有这样一句: require ( github.com/xxx-devops/xx1/sdk/go v2.2.3 ) 项目的编译没有问题,但是goland中出现如下提示: ...
- 【解决了一个小问题】alert manager中的cluster.advertise-address参数是什么意思?
如果在启动 alert manager的时候,不填写参数: /usr/bin/alertmanager --config.file=/etc/alert_manager/alertmanager.ya ...
- 【解决了一个小问题】vmselect对应的vmstorage端口配置错误导致的问题
从vmselect查询的时候,出现如下错误: error when executing query="up" on the time range (start=1639388706 ...
随机推荐
- Vue 应用程序性能优化:代码压缩、加密和混淆配置详解
简介在 Vue 应用程序的开发中,代码压缩.加密和混淆是优化应用程序性能和提高安全性的重要步骤. Vue CLI 是一个功能强大的开发工具,它提供了方便的配置选项来实现这些功能.本文将介绍如何使用 ...
- NOKOV度量光学动作捕捉系统工作流程
如果你对影视.动画或者游戏有一定关注,相信你一定听说过"动作捕捉".事实上,无论是屏幕中的战场,还是真实的军事领域,从2K游戏中的虚拟球员,到医疗.康复.运动领域的专业研究:从机器 ...
- Python网络编程:ZeroMQ
大家好,我是老胡.最近在和小伙伴们一起搞事情,我是学统计出身,编程能力其实很差,有点拖后腿了.所以需要恶补基础,这个系列会更新几篇,感兴趣的同学可以一起学习交流. ZeroMQ概述 ZeroMQ(又名 ...
- Go--变量的声明
Go语言是静态类型语言,因此变量(variable)是有明确类型的,编译器也会检查变量类型的正确性. 变量是一段或多段用来存储数据的内存,在go中,变量一旦被定义,一定要使用,不然会报错 内建变量类型 ...
- 全国城市地级市区县sql
全国城市地级市区县sql CREATE TABLE `region` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `title` varchar( ...
- vue-cli3title标签中的htmlWebpackPlugin.options.title
https://blog.csdn.net/weixin_56650035/article/details/119355625
- 淘宝flexible.js源码分析
下面三种情况都会刷新页面,都会触发load事件. 1.a标签的超链接. 2.F5或者刷新按钮(强制刷新) 3.前进后退按钮 但是火狐中,有个特点,有个"往返缓存",这个缓存中不仅保 ...
- C#设计模式09——组合模式的写法
1. 什么是C#组合模式? 组合模式是一种结构型设计模式,它允许将对象组合成树形结构以表示"整体/部分"层次结构.使用此模式,客户端可以按相同的方式处理单个对象和对象集合,而不必关 ...
- 项目使用 GlobalExceptionHandler 与 @RestControllerAdvice自定义异常 二
未经博主允许不得转载: 自定义异常,不仅需要定义符合自己业务的异常状态码,也需要定义自己项目中的异常封装.记录下自己手敲代码中的异常封装: 1.定义一个枚举类,枚举类中定义状态码及状态码描述,再定义一 ...
- Feign源码解析7:nacos loadbalancer不支持静态ip的负载均衡
背景 在feign中,一般是通过eureka.nacos等获取服务实例,但有时候调用一些服务时,人家给的是ip或域名,我们这时候还能用Feign这一套吗? 可以的. 有两种方式,一种是直接指定url: ...
