本地构建克隆仓库的max-audio-embedding-generator镜像遇域名解析错误
解决Docker构建max-audio-embedding-generator镜像时wget解析主机失败的问题
问题详情
执行docker build -t max-audio-embedding-generator .构建镜像时,步骤[2/6] RUN wget ...报错,提示:
wget: unable to resolve host address ‘max-cdn.cdn.appdomain.cloud’
完整构建日志如下:
docker build -t max-audio-embedding-generator . [+] Building 1.9s (6/10) => [internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 32B 0.0s => [internal] load .dockerignore 0.1s => => transferring context: 35B 0.0s => [internal] load metadata for quay.io/codait/max-base:v1.4.0 1.0s => CANCELED [internal] load build context 0.7s => => transferring context: 6.04MB 0.6s => CACHED [1/6] FROM quay.io/codait/max-base:v1.4.0@sha256:1f09c52c5461b4a13b3a2e6166acac5165596a6e3f65b5c168a880cd4ac6bebe 0.0s => ERROR [2/6] RUN wget -nv --show-progress --progress=bar:force:noscroll https://max-cdn.cdn.appdomain.cloud/max-audio-embedding-generator/1.0.0/assets.tar.gz --output-document=assets/a 0.7s ------ > [2/6] RUN wget -nv --show-progress --progress=bar:force:noscroll https://max-cdn.cdn.appdomain.cloud/max-audio-embedding-generator/1.0.0/assets.tar.gz --output-document=assets/assets.tar.gz && tar -x -C assets/ -f assets/assets.tar.gz -v && rm assets/assets.tar.gz: #5 0.554 wget: unable to resolve host address ‘max-cdn.cdn.appdomain.cloud’ ------ executor failed running [/bin/sh -c wget -nv --show-progress --progress=bar:force:noscroll ${model_bucket}/${model_file} --output-document=assets/${model_file} && tar -x -C assets/ -f assets/${model_file} -v && rm assets/${model_file}]: exit code: 4
解决方案
1. 为Docker构建指定DNS服务器
构建时添加--dns参数,使用公共DNS解析域名:
docker build --dns 8.8.8.8 --dns 8.8.4.4 -t max-audio-embedding-generator .
2. 修改Docker守护进程默认DNS配置(持久生效)
- 编辑Docker配置文件
/etc/docker/daemon.json(Linux系统,文件不存在则创建):{ "dns": ["8.8.8.8", "8.8.4.4"] } - 重启Docker服务:
sudo systemctl restart docker - 重新执行构建命令。
3. 手动下载资源并修改Dockerfile
- 本地执行命令下载资源:
mkdir -p assets wget -nv https://max-cdn.cdn.appdomain.cloud/max-audio-embedding-generator/1.0.0/assets.tar.gz -P assets/ - 修改项目中的Dockerfile:
- 注释掉原来的
RUN wget ...行 - 添加复制本地资源的命令:
COPY assets/assets.tar.gz assets/ - 保留后续的解压和删除步骤,或提前在本地解压后直接复制文件:
然后Dockerfile中替换为:tar -x -C assets/ -f assets/assets.tar.gz rm assets/assets.tar.gzCOPY assets/ assets/
- 注释掉原来的
- 重新执行构建命令。
4. 检查本地网络DNS解析
先在本地主机测试域名解析:
nslookup max-cdn.cdn.appdomain.cloud
如果本地也无法解析,调整本地系统DNS设置为公共DNS(如8.8.8.8)即可。
内容的提问来源于stack exchange,提问作者Sarthak Alure
相关产品推荐
相关产品推荐

