docker - 尝试在 docker 上使用 go mod download 时出错

标签 docker eof go-gorm go-modules

我正在使用 docker、Postgres 和 gorm 制作一个应用程序(使用 ORM 库) 当我想构建我的 docker 镜像时,出现此错误(某种 EOF?) EOF error when go mod download on docker

我的代码非常简单,无需 Docker 即可正确运行。

package main

import (
    "fmt"
    "gorm.io/driver/postgres"
    "gorm.io/gorm"
)

func main() {
    dsn := "host=localhost user=postgres password=postgres dbname=postgres port=5432 sslmode=disable TimeZone=Asia/Shanghai"
    db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{})
    if err != nil {
        fmt.Println("Error connecting to postgres", err)
    }

    fmt.Printf("%+v\n", db)
}

另外,这是我的 Dockerfile:

FROM golang:1.16.4-alpine3.13 AS build
RUN mkdir /app
COPY src/go.mod /app
COPY src/go.sum /app
WORKDIR /app

RUN go mod download

COPY src /app
RUN go build -o main .

FROM alpine AS final
COPY --from=build /app /app
ENTRYPOINT ["/app/main"]

最佳答案

这看起来像是网络问题。

当您在 Docker 外部运行时,您可能不会看到这些错误,因为受影响的模块已经存在于先前构建的本地模块缓存中,而您的 Dockerfile 是从干净的缓存启动并重新下载每次都使用模块源。

关于docker - 尝试在 docker 上使用 go mod download 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67823264/

相关文章:

处理程序中的 Golang 抽象以避免代码重复

asp.net - Docker:运行dotnet publish -o/output会在CLI上导致非零错误

bash - sh脚本在docker容器中不起作用

使用 STDIN 在 fgetc() 缓冲区中找不到 EOF

Gorm : How do I set an integer column to null, 并更新内存中的模型?

go - 如何在查询中使用问号?

python - 从 python 运行 docker-compose

docker - rsyslog未连接到docker中的elasticsearch

c - 使用 EOF(CTRL+D) 重复输入的最后一行

c - 停在文件末尾