为了账号安全,请及时绑定邮箱和手机立即绑定

在 docker 容器上找不到可执行文件

在 docker 容器上找不到可执行文件

Go
ibeautiful 2023-03-21 10:11:05
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 在评论中也指出了这一点。


查看完整回答
反对 回复 2023-03-21
  • 1 回答
  • 0 关注
  • 211 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号