如何配置Docker Compose适配/cmd目录下的Go项目并解决构建报错
解决方案
1. 修正Dockerfile构建路径
构建错误的核心原因是go build -o main .会在当前工作目录(/app)下查找Go源码文件,但你的入口文件main.go位于/app/cmd子目录中,导致构建命令找不到可编译的Go文件。
修改后的Dockerfile:
FROM golang:1.22.1-alpine WORKDIR /app COPY . . RUN go mod download # 指定从cmd目录构建入口程序 RUN go build -o main ./cmd CMD ["/app/main"]
2. 优化Docker Compose的开发监控(可选)
你的现有watch配置已经通过./**/*.go覆盖了所有子目录的Go文件,包括cmd目录,无需修改即可在文件变更时自动重建。如果需要更精准的监控范围,可以调整为:
watch: - action: rebuild files: - ./cmd/**/*.go - ./go.mod - ./go.sum
3. 验证运行
执行以下命令重新构建并启动服务:
docker compose up --build
若使用Docker Compose开发模式:
docker compose watch
内容的提问来源于stack exchange,提问作者cvau
相关产品推荐
相关产品推荐

