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

Golang+PostgreSQL Docker-Compose构建失败求助

解决Golang+PostgreSQL Docker-Compose构建时go mod download超时问题

错误根源

从报错信息看,容器无法解析proxy.golang.org的DNS地址,核心问题有两个:

  • 自定义的Docker子网127.0.0/24属于本地回环地址段,容器使用该子网会导致网络路由异常,无法正常访问外部网络。
  • 国内环境访问官方Go代理proxy.golang.org大概率存在网络延迟或访问限制。

解决方案

1. 修复Docker网络配置

将docker-compose.yml中的子网替换为合法私有子网段(如192.168.100.0/24),同时修正PostgreSQL端口映射错误:

version: '3.8'
networks:
  net_mastertest:
   driver: bridge
   ipam:
    config:
    - subnet: 192.168.100.0/24 # 替换为非回环私有子网
services:
  server:
    build: ./
    command: ./server
    ports:
      - 8000:8000
    depends_on:
      - db
    networks:
      - net_mastertest

  db:
    restart: always
    image: postgres:latest
    env_file:
      - .env
    environment:
      - POSTGRES_USER=${DB_USER}
      - POSTGRES_PASSWORD=${DB_PASSWORD}
      - POSTGRES_DB=${DB_NAME}
    ports:
      - 5555:5432 # 修正:PostgreSQL默认端口为5432,原映射错误
    networks:
      - net_mastertest

2. 替换Go模块代理为国内镜像

在Dockerfile中添加国内Go代理配置,加速依赖下载:

FROM golang:1.20

WORKDIR /app

RUN go version
ENV GOPATH=/
# 配置国内Go代理,解决官方代理访问问题
ENV GOPROXY=https://goproxy.cn,direct

COPY ./ ./

RUN go mod download
RUN go build -o server ./main.go
CMD ["./server"]

3. 执行构建

先清理现有容器,再重新构建环境:

docker-compose down
docker-compose up --build

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 17:42:45