作者:张富春(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问题的更多相关文章

  1. 如何在MacBook M1上无缝切换Win11和MacOS?

    2020年,MacBook M1发布后,由于其夸张到离谱的性能表现,苹果又一次在知名度和销量上真正实现了双丰收. 抛开M1和MacOS其他的华丽特色不谈,很多习惯了Windows系统的同学,在换了这台 ...

  2. 【解决了一个小问题】golang protocol buffers 3中去掉json标签中的omitempty

    参考了这篇帖子:golang protobuf从生成的json标记中删除omitempty标记 由于是在windows上开发,因此写了一个python脚本来解决: remove_tag.py impo ...

  3. 【解决了一个小问题】go.mod文件中引用另一个库,总会自动拉取新版本

    我的项目依赖某个旧的公共库: require ( git.xxx.com/myprj/mylib v0.0.43 ) 可以编译的时候,系统总会自动加上这样的路径: require ( git.xxx. ...

  4. 【解决了一个小问题】golang gin框架中的模板,让模板中的参数不要做HTML转义

    代码中使用了类似的方式来向模板填充参数: c.HTML(200, "list.html", gin.H{"data":builder.String()}) 模板 ...

  5. 【解决了一个小问题】alpine镜像中,busybox的date命令获取昨天的日期

    直接上答案: date -d@"$(( `date +%s`-86400))" +"%Y-%m-%d"

  6. 【解决了一个小问题】如何展示VictoriaMetrics组件上报的bucket数据

    VM体系还真的是不一(he)样(qun), 它上报的监控数据长这样: vmagent_remotewrite_block_size_rows_bucket{vmrange="2.448e+0 ...

  7. 【解决了一个小问题】golang build中因为缓存文件损坏导致的编译错误

    编译的过程中出现了一个吓人的错误: GOROOT=C:\Go #gosetup GOPATH=C:\Users\ahfuzhang\go #gosetup C:\Go\bin\go.exe mod t ...

  8. 【解决了一个小问题】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中出现如下提示: ...

  9. 【解决了一个小问题】alert manager中的cluster.advertise-address参数是什么意思?

    如果在启动 alert manager的时候,不填写参数: /usr/bin/alertmanager --config.file=/etc/alert_manager/alertmanager.ya ...

  10. 【解决了一个小问题】vmselect对应的vmstorage端口配置错误导致的问题

    从vmselect查询的时候,出现如下错误: error when executing query="up" on the time range (start=1639388706 ...

随机推荐

  1. 如何打造企业专属 A/B 平台?火山引擎 DataTester 开放平台技术揭秘

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 企业为什么需要开放平台 开放平台对于企业与业务来说,做到的不仅是能力的开放.生态的开放,与此同时还要能提供完善的业 ...

  2. PPT 常规设置

    高级设置 可以将撤销次数调大,最多 150次 默认拉到PPT中的图片是被压缩的,可以设置成不压缩(解压 PPT 可查看里面的图片大小) 字体嵌入 可将自动保存时间调短,默认保存目录我习惯先保存到桌面( ...

  3. .NET Moq mock internal类型

    问题 Can not create proxy for type xxx because type xxx is not accessible. Make it public, or internal ...

  4. 【Django drf】序列化器总结

    目录 序列化器字段 外键字段自定义序列化 在模型类中写方法 在序列化类中写方法 反序列化 外键字段反序列化保存 ModelSerializer使用总结 序列化器字段 序列化中的字段可以根据用途分为三种 ...

  5. ABAP步循环

    一.在界面中循环输出行数据,屏幕直接画出行数,需要计算翻页,一旦界面行数变动,则需要更改代码,所以引入步循环 二.步循环 首先在界面上画出要展示的内容 注意,在步循环中,文本的名称和输入框的名称不能相 ...

  6. C++ 标准库 智能指针

    C++没有垃圾回收,因此 new 出来的对象都要自己管理 为了方便的管理内存,我们发现垃圾回收中引用计数的思路很简单就能在 C++中实现,而其实标准库中就已经有这样的实现,也就是智能指针 它们的头文件 ...

  7. 2021暑假训练赛1 基于Codeforce#479(div3)

    A - Xor Sum 似乎是很明显的字典树问题(不会啊,最后搬了一个板子修修改改以后才过了 AcWing 相似题目:143. 最大异或对 最后得吐槽一下 memset 为什么能这么慢啊 Kora! ...

  8. 前端科普系列(3):CommonJS 不是前端却革命了前端

    本文首发于 vivo互联网技术 微信公众号 链接:https://mp.weixin.qq.com/s/15sedEuUVTsgyUm1lswrKA作者:Morrain 一.前言 上一篇<前端科 ...

  9. eyebeam高级设置

    概述 VOIP测试过程中,经常会用到各种各样的SIP终端,eyebeam是其中最常见的一种. 在eyebeam的配置option中,只有少量的配置选项,有些特殊的设置无法配置. 比如DTMF码的发码形 ...

  10. python常见面试题讲解(九)字符个数统计

    题目描述 编写一个函数,计算字符串中含有的不同字符的个数.字符在ACSII码范围内(0~127),换行表示结束符,不算在字符里.不在范围内的不作统计.注意是不同的字符 输入描述: 输入N个字符,字符在 ...