Acabo de actualizar a la nueva versión de Go - Go versión 1.16.2 Linux/amd64 y recibo un error cuando construyo un Hello, World! ejemplo :
go: el archivo go.mod no se encuentra en el directorio actual ni en ningún directorio principal; ver 'ir a los módulos de ayuda'
Incluso cuando sigo la solución de esa publicación , no funciona. Configuro estas variables y luego construyo de nuevo:
GO111MODULE=on GOPROXY=https://proxy.golang.org,directY el mismo problema por desgracia.
Go crea paquetes en modo compatible con módulos de forma predeterminada a partir de 1.16. Ver aquí
Navegue a la carpeta que contiene el archivo Go y ejecute:
go mod init <modulename> .
Aquí se crea un archivo go.mod y este directorio se convertirá en la raíz del módulo recién creado. Vea aquí para leer sobre los módulos Go.
Desde el directorio de su proyecto, agregue esta línea de código en su archivo Dockerfile si está creando una imagen de Docker:
RUN go mod init
O esto en su directorio:
go mod init
Cambia esto:
go env -w GO111MODULE=auto
a esto:
go env -w GO111MODULE=off
Tuve el mismo error cuando construí una imagen de Docker:
docker build . -t ms-c3alert:1.0.6Detalle del error:
Step 11/21 : ENV GO111MODULE=on ---> Using cache ---> 1f1728be0f4a Step 12/21 : RUN CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -a -installsuffix cgo -o c3alert . ---> Running in ee4b3d33d1d2 go: go.mod file not found in current directory or any parent directory; see 'go help modules' The command '/bin/sh -c CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -a -installsuffix cgo -o c3alert .' returned a non-zero code: 1Lo resolví agregando las siguientes líneas en mi Dockerfile. Anteriormente requería tener un proyecto Go en módulos, según la guía en publicaciones anteriores:
COPY go.mod . COPY go.sum . RUN go mod downloadSí, solo siga el tutorial y para mí eso fue hacer go mod init test3 para crear un módulo. Nadie más ha estado actualizando desde la versión anterior o todos los demás simplemente lo entendieron correctamente, supongo.
Estaba tratando de ejecutar el comando go build en mi máquina local de Windows y me encontré con el go: go.mod file not found in current directory or any parent directory; see 'go help modules' .
Así es como fui a resolverlo:
$ pwd y obtuve una respuesta como /c/projects/go-projects/go-server$ go mod init c/projects/go-projects/go-server Esto eliminó totalmente el error y pude ejecutar el servidor con el comando $ ./go-web
PD : es importante tener en cuenta que estaba ejecutando comandos de Linux en mi máquina usando el terminal Git Bash Linux para Windows, viene por defecto en Windows con la instalación de git para Windows.
Intenta ejecutar los siguientes comandos
Esto funcionó para mí:
FROM golang:alpine WORKDIR /go/src/app ADD . . RUN go mod init RUN go build -o /helloworld EXPOSE 6111 CMD ["./helloworld"]Primero asegúrese de que su valor GO111MODULE esté configurado en "automático". Puedes consultarlo desde:
go envSi no está configurado en "automático", ejecute:
go env -w GO111MODULE=autoVaya a su directorio de trabajo en la terminal y ejecute:
go mod init go mod tidytú eres bueno para irte.
Acabo de empezar a aprender Go.
Y he encontrado esto si construyes tu programa como se muestra a continuación:
go build "name of go app with path" go build .\Main.go