dockerfile 换成个人阿里云 acr 源,服务端部署出错

92 天前
 yunshangzhou

在迁移镜像源之前,线上部署没问题。

dockerfile 做了这样的改动

# FROM nginx:latest as prod-stage
FROM registry.cn-hangzhou.aliyuncs.com/my_hub/nginx:latest

改动后,线上部署失败,容器报错 exec user process caused: exec format err

一开始以为是镜像本身问题,但是本地运行是跑通状态的。 于是改回:

#FROM nginx:latest as prod-stage
# FROM registry.cn-hangzhou.aliyuncs.com/my_hub/nginx:latest

服务端再部署,正常运行。

是服务端 docker 哪儿没有配置好吗?关键是本地也没怎么配置..

1329 次点击
所在节点    程序员
20 条回复
jiangzm
92 天前
是不是仓库权限问题
onichandame
92 天前
国内镜像源已经全面陷落。个人项目直接翻墙,企业项目部署到香港或者买个海外专线
90xchun
92 天前
应该是最近改的,即使你配置的公开仓库,直接拉是拉不动的,需要登录后就正常 pull 镜像了
Curtion
92 天前
我现在部署程序都是 docker save 和 docker load 了,太惨了
JensenQian
92 天前
要么挂代理
要么自己反代下
完毕
yunshangzhou
92 天前
@90xchun 服务端能拉镜像,只是容器无法运行。个人仓库公开的,不需要登也能 pull
90xchun
92 天前
@yunshangzhou 那服务是和本地一样的环境吗?你本地要啊是 mac 或者是 Windows ,而你服务器是 linux ,那是无法运行的
yanghanlin
92 天前
是不是服务器和本地架构不一样导致的呢?官方的 Nginx 镜像应该支持多平台所以没问题,自己做镜像时可能忽略了其他平台
yanghanlin
92 天前
@yanghanlin 比如本地是 Mac ( ARM ),服务器是 x86 ,自己镜像时可能只是 docker pull/push 了下,没有复制全部平台的镜像
swq1227
92 天前
#8 应该是正解,可以使用
```bash
docker buildx build --platform=linux/amd64,linux/arm64 .
```
指定 platform
yunshangzhou
92 天前
@yanghanlin
@swq1227 给官方镜像打 tag 传到 acr 不可以么?
yanghanlin
92 天前
@yunshangzhou #11 用 docker pull/push 如何正确复制镜像我暂时也不太清楚呢,推荐一下操作镜像的专用工具 skopeo https://github.com/containers/skopeo
sagaxu
92 天前
运行错误信息呢?
swq1227
92 天前
@yunshangzhou 一样的道理,例如你本地是 MAC M1, 那么你 pull 下来的镜像就是 arm 的,你重新打的 tag 也是给这个 arm 的镜像打的 tag ,push 到 acr 就只有 arm
JayZXu
92 天前
我这边一直用的阿里云的个人 docker 仓库跑流水线的,是正常的。应该是上面说到的架构问题
Baymaxbowen
92 天前
找赛博菩萨帮你反代一下
yunshangzhou
92 天前
@swq1227 嗯,我想应该是这个了,我以为是多架构复合型镜像
anonydmer
92 天前
exec format err 这个就是典型的架构不匹配的错误提示
guanzhangzhang
91 天前
exec format err 这个就是典型的架构不匹配的错误提示
而在没使用 qemu-user-static 和配合 docker buildx 指定 platform 下,默认都是使用机器的架构构建的
支持 manifest list 的镜像下,你 pull 没指定 platform 下默认是按照机器架构拉取,例如 nginx:alpine 你在 arm64 架构上拉取就是拉 arm64 的镜像,amd64 就是 amd64 架构
yunshangzhou
91 天前
@guanzhangzhang 我糊涂了,早应该想到这个

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1066832

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX