这个是docker镜像运行的,怎么会缺少包呢?而且之前运行的没问题。
不好意思,没注意看是 docker,我刚在 mac M1 上试了下 5.8.2、5.8.3 都是可以的。
麻烦提供一下
- 是啥操作系统和 docker 版本
- 有没有改其它的配置(quic 的)
- 以前是可以的,用就是哪一个版本
我是在mac m1 上运行的,15.1.1 系统。
docker 27.3.1
没改过配置。
我从13 更新到的 15,我忘记更新后有没有运行过了。。。
至少之前13的时候没问题。
docker应该在15之后更新过,之前的版本忘记了,好像是22左右。
emqx镜像一直是5.8.2.
那就奇怪了。我操作系统是15.2 (24C101)
docker run -d --name emqx -p 1883:1883 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 emqx/emqx:5.8.2
docker logs emqx -f
WARNING: Default (insecure) Erlang cookie is in use.
WARNING: Configure node.cookie in /opt/emqx/etc/emqx.conf or override from environment variable EMQX_NODE__COOKIE
WARNING: NOTE: Use the same cookie for all nodes in the cluster.
EMQX_RPC__PORT_DISCOVERY [rpc.port_discovery]: manual
EMQX_NODE__NAME [node.name]: emqx@192.168.215.2
Listener tcp:default on 0.0.0.0:1883 started.
Listener ssl:default on 0.0.0.0:8883 started.
Listener ws:default on 0.0.0.0:8083 started.
Listener wss:default on 0.0.0.0:8084 started.
Listener http:dashboard on :18083 started.
EMQX 5.8.2 is running now!
我直接就能启动成功…
与这个arm版本有关系吗?
看起来是的,你应该用 arm64
“Architecture”: “arm64”,
docker image inspect emqx
[
{
"Id": "sha256:11ec137a52049c15bcf89c5e4fa4f0606f563e89bc22d830a902e91dcd45f7dd",
"RepoTags": [
"emqx:5.8.2",
"emqx:latest"
],
"RepoDigests": [
"emqx@sha256:caabba5cd96759df3dbf98ec84560bfac9a958efbf86f892db6bdb2dab493ba6"
],
"Parent": "",
"Comment": "buildkit.dockerfile.v0",
"Created": "2024-11-13T15:58:01Z",
"DockerVersion": "",
"Author": "",
"Config": {
"Hostname": "",
"Domainname": "",
"User": "emqx",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"18083/tcp": {},
"1883/tcp": {},
"4370/tcp": {},
"5369/tcp": {},
"8083/tcp": {},
"8084/tcp": {},
"8883/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"EMQX_VERSION=5.8.2",
"AMD64_SHA256=bd6497c8356a8d22b746788dc6b49d9447f370240724f6a32c96e9aaa82af7d7",
"ARM64_SHA256=18bd3d6a00ec243215faa4bb7a7bf4bf468b53384cc658b5e25ab55edd189551",
"LC_ALL=C.UTF-8",
"LANG=C.UTF-8"
],
"Cmd": [
"/opt/emqx/bin/emqx",
"foreground"
],
"ArgsEscaped": true,
"Image": "",
"Volumes": {
"/opt/emqx/data": {},
"/opt/emqx/log": {}
},
"WorkingDir": "/opt/emqx",
"Entrypoint": [
"/usr/bin/docker-entrypoint.sh"
],
"OnBuild": null,
"Labels": null
},
"Architecture": "arm64",
"Variant": "v8",
"Os": "linux",
"Size": 245042231,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/4dab0fc27c1c41430e187456b688afaa4d0caa4fa25571633e5bc76fe0c1bddd/diff:/var/lib/docker/overlay2/1fe3cafac6357c76a86e4873535f3d2da02d7aac99d0366db56c3cde7c9b5bff/diff:/var/lib/docker/overlay2/7dc80a204c55c342dd3afd2bdceb98c7d433224b5f7b475d2720b07ffa8adb2b/diff",
"MergedDir": "/var/lib/docker/overlay2/8c97b394baf9194e3698d418675a02fcb532316078175de8419e62e0f6c90de9/merged",
"UpperDir": "/var/lib/docker/overlay2/8c97b394baf9194e3698d418675a02fcb532316078175de8419e62e0f6c90de9/diff",
"WorkDir": "/var/lib/docker/overlay2/8c97b394baf9194e3698d418675a02fcb532316078175de8419e62e0f6c90de9/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:077584c0c75a9ed7e709ddf807892e87202ffaed0c3ada73e3ca853b425dc067",
"sha256:5ad3ccc8d5f969af1af1ce9ce8095ec70148529c6797f3af9169e31d3b0078d8",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:6918422e61bd8943573475b6d731d44e063da1b71ba6e25dcfe5e654f6e4fcbc"
]
},
"Metadata": {
"LastTagTime": "0001-01-01T00:00:00Z"
}
}
]
我用的就是arm64啊
你的图里面不是显示的 amd64 么。。。
额,我这眼睛。。。。。瞎了。。。。我试一下arm版本
是这个镜像不匹配的问题。。。
我本机的环境变量中DOCKER_DEFAULT_PLATFORM=linux/amd64,导致了下载的amd版本,改成arm之后,用arm版本没问题了。
但是另一个问题是:m1运行amd版本不应该报错误吧?就算有性能问题,也不应该报错误啊。
建议用对的架构构建包。再看你图中的amd64 的时候 docker 自己都提示了一个黄色危险。如果还想深究一下,我也没这方面的知识储备,只能自个去看看