You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Docker Alpine镜像安装Git时遭遇DNS查询错误求助

解决Alpine镜像构建时DNS解析失败的问题

问题背景

基于golang:1.19-alpine构建镜像时,执行apk update出现DNS解析错误,无法访问Alpine官方源dl-cdn.alpinelinux.org,构建进程因退出码4失败。

可行解决方案

1. 修改Docker全局DNS配置

  • 创建或编辑Docker配置文件/etc/docker/daemon.json:
    {
      "dns": ["8.8.8.8", "114.114.114.114"]
    }
    
  • 重启Docker服务使配置生效:
    sudo systemctl restart docker
    
  • 重新执行镜像构建命令

2. 在Dockerfile中替换为国内Alpine镜像源

直接更换为国内可稳定访问的镜像源,绕开DNS解析问题:

FROM golang:1.19-alpine

# 替换为阿里云Alpine镜像源
RUN echo "https://mirrors.aliyun.com/alpine/v3.18/main/" > /etc/apk/repositories && \
    echo "https://mirrors.aliyun.com/alpine/v3.18/community/" >> /etc/apk/repositories

RUN apk update && apk add --no-cache git
ENV GOPRIVATE=bitbucket.org/<organization_name>
RUN echo "machine bitbucket.org login <username> password <password>" > $HOME/.netrc

WORKDIR /app

COPY go.mod ./
COPY go.sum ./

RUN go install github.com/githubnemo/CompileDaemon@latest
RUN go mod download

COPY . .

EXPOSE 8004

ENTRYPOINT CompileDaemon --build="go build main.go" --command=./main

3. 检查宿主机网络连通性

  • 在Ubuntu宿主机上测试域名解析:
    nslookup dl-cdn.alpinelinux.org
    
  • 如果宿主机也无法解析,需修改宿主机DNS配置:编辑/etc/resolv.conf,添加nameserver 8.8.8.8或其他可靠DNS服务器

4. 构建时指定宿主机网络

执行构建命令时使用宿主机网络栈,直接复用宿主机的DNS配置:

docker build --network host -t your-image-tag .

优化建议

不要在Dockerfile中硬编码Bitbucket的用户名和密码,改用构建参数传递,避免敏感信息泄露:

FROM golang:1.19-alpine

# 替换为国内镜像源(可选)
RUN echo "https://mirrors.aliyun.com/alpine/v3.18/main/" > /etc/apk/repositories && \
    echo "https://mirrors.aliyun.com/alpine/v3.18/community/" >> /etc/apk/repositories

RUN apk update && apk add --no-cache git
ENV GOPRIVATE=bitbucket.org/<organization_name>

# 通过构建参数传入敏感信息
ARG BITBUCKET_USER
ARG BITBUCKET_PASS
RUN echo "machine bitbucket.org login ${BITBUCKET_USER} password ${BITBUCKET_PASS}" > $HOME/.netrc

# 后续命令保持不变...

构建时传递参数:

docker build --build-arg BITBUCKET_USER=your-username --build-arg BITBUCKET_PASS=your-password -t your-image-tag .

内容的提问来源于stack exchange,提问作者R1ky68

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 14:52:32