Docker compose$GOPATH/go.mod存在,但不应存在

Docker compose$GOPATH/go.mod存在,但不应存在,docker,go,docker-compose,Docker,Go,Docker Compose,我有一个单独运行的Dockerfile 但是当我从docker compose-up运行它时 我得到:$GOPATH/go.mod存在,但不应 下面是终端输出的一个片段 Successfully tagged app_app:latest Starting golang_db ... done Starting golang_app ... done Attaching to golang_db, golang_app golang_app | $GOPATH/go.mod exists but

我有一个单独运行的Dockerfile

但是当我从docker compose-up运行它时

我得到:
$GOPATH/go.mod存在,但不应

下面是终端输出的一个片段

Successfully tagged app_app:latest
Starting golang_db ... done
Starting golang_app ... done
Attaching to golang_db, golang_app
golang_app | $GOPATH/go.mod exists but should not
.
.
golang_db | Version: '5.6.48'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  MySQL Community Server (GPL)
golang_app exited with code 1

有什么建议吗

#docker-compose.yml
version: '3'
services:
  db:
    build:
      context: ./MySQL
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: test_db
      MYSQL_USER: docker
      MYSQL_PASSWORD: docker
    container_name: golang_db
    ports:
      - "3306:3306"
    tty: true
  app:
    build:
      context: ./Go
    volumes:
      - "./Go:/go"
    container_name: golang_app
    ports:
      - "9000:9000"
    tty: true
    depends_on:
      - db

在GOPATH的根目录中,不需要任何包。通常期望有一个子目录src/github.com/someproject/somerepo,这很可能是警告的根本原因

我把它整理好了,上面的Dockerfile已经更新了。

为什么要构建应用程序(顺便说一句,使用包名时使用
go build
),然后,每次使用
go run
启动容器时都重新构建它?另外,容器中的GOPATH是什么?你用什么来塑造这个形象?同样奇怪的是,你添加了这些文件,然后又单独复制了一些。正在添加什么?Dockerfile已更新。我做docker compose Up时也会有同样的行为,为什么每次运行容器时都不使用
go build
Executive而不是执行
go run
?您应该发布答案,而不是编辑您的问题。现在没有简单的方法知道你是如何解决的。如果不是答案,你不应该发布答案,句号。这不是一个答案,它只是一个个人的进展更新。
#Go/Dockerfile
FROM golang:alpine AS builder
ENV GO111MODULE=on
RUN mkdir /app
ADD . /app/
WORKDIR /app
COPY ./structs.go .
COPY ./handlers.go .
COPY ./server.go .
COPY ./favicon.ico .
COPY ./assets /assets
RUN go mod init stuff.com
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build $(ls -1 *.go)
EXPOSE 9000
CMD ["go", "run", "."]
#MySQL/Dockerfile
FROM mysql:5.6
COPY test.sql /docker-entrypoint-initdb.d/test.sql