将 golang 应用程序推送到 cloud-foundry 会在日志中引发错误

问题描述 投票:0回答:1

我在

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

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
推送应用程序时,一切似乎一开始都正常。一切都正在正确下载和构建。

但是最后它崩溃了,并且在日志中出现了这个错误:

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命令尝试了很多事情。但没有任何效果。

go manifest cloud-foundry go-gin
1个回答
0
投票

使用 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
© www.soinside.com 2019 - 2024. All rights reserved.