将golang应用程序推到cloud-foundry在日志中抛出错误

e5njpo68  于 2023-09-28  发布在  Go
关注(0)|答案(1)|浏览(84)

我在main.go文件中有一个go应用程序,它有一个服务器。服务器运行在localhost:9090上。我有我的货单

applications:
  - name: golang-app
    buildpacks:
      - https://github.com/cloudfoundry/go-buildpack
    memory: 4GB
    disk_quota: 4GB
    instances: 1
    env:
      GO_APP_ENV: prod
    services:
      - go_mariadb-prod

当我用cf push -f manifest.prod.yaml推送应用程序时,一开始一切似乎都在工作。一切都是beeing下载和建立正确的。
但最后它崩溃了,在日志中有这个错误:

2023-03-07T14:14:13.86+0100 [CELL/0] OUT Downloading droplet...
   2023-03-07T14:14:14.50+0100 [CELL/0] OUT Downloaded droplet (6.8M)
   2023-03-07T14:14:14.50+0100 [CELL/0] OUT Starting health monitoring of container
   2023-03-07T14:14:14.92+0100 [APP/PROC/WEB/0] ERR bash: ./main: No such file or directory
   2023-03-07T14:14:14.93+0100 [APP/PROC/WEB/0] OUT Exit status 127
   2023-03-07T14:14:14.93+0100 [CELL/SSHD/0] OUT Exit status 0
   2023-03-07T14:14:20.21+0100 [API/1] OUT Process has crashed with type: "web"
   2023-03-07T14:14:20.22+0100 [CELL/0] OUT Cell b8118f92-f568-41d6-a3a1-125361b0d5c2 stopping instance d0442bce-ea3e-4c23-5c08-6ac4
   2023-03-07T14:14:20.22+0100 [CELL/0] OUT Cell b8118f92-f568-41d6-a3a1-125361b0d5c2 destroying container for instance d0442bce-ea3e-4c23-5c08-6ac4

我不知道这里出了什么问题。我尝试了很多东西,通过改变manifest.yaml或push命令。但都不管用。

4xrmg8kj

4xrmg8kj1#

使用go-buildpack时,您应该坚持使用此docs
一般来说,我建议使用CF Binary-Buildpack(速度更快)。
您可以在系统上构建GO应用程序作为Linux二进制文件(如下所示),然后将二进制文件和所需的资产推送到CF。

GOOS=linux CGO_ENABLED=0 GOARCH=amd64 go build -ldflags '-s -w' -o main ./cmd/main.go

相关问题