Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker找不到main.go_Docker_Go_Docker Compose_Dockerfile - Fatal编程技术网

Docker找不到main.go

Docker找不到main.go,docker,go,docker-compose,dockerfile,Docker,Go,Docker Compose,Dockerfile,我试图在docker容器中运行我的简单golang API,以便它可以在所有机器上运行,当我使用docker工具箱导航到目录并运行docker compose up时,我得到一个错误,错误是stat main.go:没有这样的文件或目录我认为这可能与docker file/docker compose上的路径有关?谁能帮我看看吗 Dockerfile FROM golang:latest RUN mkdir -p /go/src/app WORKDIR /go/src/app ADD . /

我试图在docker容器中运行我的简单golang API,以便它可以在所有机器上运行,当我使用docker工具箱导航到目录并运行
docker compose up
时,我得到一个错误,错误是
stat main.go:没有这样的文件或目录
我认为这可能与docker file/docker compose上的路径有关?谁能帮我看看吗

Dockerfile

FROM golang:latest

RUN mkdir -p /go/src/app
WORKDIR /go/src/app

ADD . /go/src/app

RUN go get -v
docker-compose.yml

version: '3'
services:
     db:
         image: postgres
     environment:
         POSTGRES_DB: Shoes
         POSTGRES_USER: postgres
         POSTGRES_PASSWORD: root
     ports:
         - 5432:5432
     app:
       build: .
       command: ["go", "run", "main.go"]
       volumes:
         - .:/go/src/app
     ports:
         - "8080:8080"
     depends_on:
         - db
     links:
         - db

编辑:重新排列一些文件并使我的GOPATH正常工作后出现新错误。我在docker中连接到数据库时遇到问题,当我无法连接时会收到错误消息。

使用
ENV GOPATH
检查
docker运行--rm golanng:Last printenv
GOPATH
添加到docker文件,并检查输出是否正确GOPATH@RajeshRajendran它说我的is GOPATH=/go我是否将ENV GOPATH放置在我的dockerfile的顶端?对不起,我对docker来说是全新的,大概一个小时了haha@dmitryro它说我的是GOPATH=/go,不是应该是/go/src吗?这取决于go的安装位置,例如,如果你的
哪个go
会告诉你
/usr/local/go/bin/go
,那么
GOPATH
应该是
/usr/local/go