CMD我在尝试使用 Go 应用程序在 docker 容器内运行命令时遇到了一些问题。这是我得到的输出:golang-api | /bin/sh: ./server: not foundgolang-api exited with code 127这是 DockerfileFROM golang:1.18-alpineRUN apk add g++ && apk add makeWORKDIR /appCOPY go.mod go.sum ./RUN go mod downloadCOPY . .RUN make buildEXPOSE 8000CMD ./server这是负责构建命令的 Makefile:LINUX_AMD64 = GOOS=linux GOARCH=amd64 CGO_ENABLED=1 GO111MODULE=onmigrate: cd cmd/migrations/$(FOLDER) && go run main.gobuild: cd cmd && $(LINUX_AMD64) go build -a -v -tags musl -o server和 docker-compose.ymlversion: '3.1'services: api: build: dockerfile: Dockerfile context: . container_name: golang-api ports: - "8000:8000" restart: unless-stopped depends_on: - db environment: - POSTGRES_URL=$POSTGRES_URL db: image: postgres restart: always environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres ports: - '5432:5432'
1 回答

慕村225694
TA贡献1880条经验 获得超4个赞
问题解决了。
不知何故,该RUN cd cmd
命令似乎没有在预期目录中生成文件。
尝试使用RUN go build cmd/main.go
而不是使用makefile是可行的,@paltaa 在评论中也指出了这一点。
- 1 回答
- 0 关注
- 211 浏览
添加回答
举报
0/150
提交
取消