簡體   English   中英

將二進制文件推送到 cf 時,Cloud Foundry 下載錯誤的 go 版本

[英]Cloud foundry downloading wrong go version when binary file pushed to cf

嗨,當我將我的二進制文件推送到 cf 時,我們看到錯誤的 go 版本被下載

推送代碼的步驟

  1. 運行 go 構建命令

GOOS="linux" GOARCH=amd64 go build ${LDFLAGS} -o localdeploy/some-app main.go

  1. 光盤本地部署
  2. cf push -f 清單.yml

注意:localdeploy 文件夾包含 manifest.yml 和 some-app 二進制文件

Go.mod文件


go 1.16

require (
    github.com/cloudfoundry-community/go-cfenv v1.18.0
    github.com/gin-gonic/gin v1.8.1
    github.com/google/uuid v1.3.0
    github.com/rs/zerolog v1.28.0
    github.com/stretchr/testify v1.8.0
)

清單文件.yml

 applications:
      - name: some-app-1000-snapshot
        command: ./some-app
        stack: cflinuxfs3
        buildpacks:
          - https://github.com/cloudfoundry/binary-buildpack.git

Then i see following logs downloading go 1.15.5 instead of go 1.16


Below are the logs getting when pushed to cf --- application is working but why it is downloading 1.15 instead of 1.16 which is present in my mod file

Staging app and tracing logs...
   -----> Download go 1.15.5
   -----> Running go build supply
   /tmp/buildpackdownloads/d612ac0e3047b21e80ecfeae72c39f81 ~
   ~
   -----> Binary Buildpack version 1.0.46
   -----> Download go 1.15.5
   -----> Running go build finalize
   /tmp/buildpackdownloads/d612ac0e3047b21e80ecfeae72c39f81 ~```

二進制 buildpack 不會為您的應用程序安裝任何東西。 它實際上是一個無操作構建包。

由於您已在本地編譯應用程序,因此用於二進制文件的 Go 版本是您計算機上本地安裝的版本。 您可以根據本地安裝的內容來控制該版本。


二進制 buildpack 的 output 在這里令人困惑,因為您確實看到它下載了較舊的 Go 版本。 發生這種情況的原因是因為 buildpack 本身是在 Go 中編寫的,並且您在 manifest.yml 中有指向 buildpack 源代碼的 buildpack 定義。 因此要運行 buildpack,它必須先編譯自己。 它需要 Go 來執行此操作,因此它下載 Go,自行構建,然后自行運行。 這就是您看到的內容Download go 1.15.5

大多數(全部?)CloudFoundry 安裝將默認使用二進制 buildpack,因此您無需引用源代碼。 運行cf buildpacks並從列表中獲取二進制 buildpack 的名稱。 它類似於binary-buildpackbinary_buildpack 編輯您的 manifest.yml 並將https://github.com/cloudfoundry/binary-buildpack.git替換為該值。

現在,當您推送時,它將使用已經編譯的現有構建包,您不應該看到有關正在下載的 Go 的消息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM