editor php Banana menghadapi masalah semasa menggunakan Go Buildpack: "Modul tempatan tidak dapat ditemui, apa yang saya hilang?". Go Buildpack ialah alat untuk membina dan menjalankan aplikasi Go pada platform Cloud Foundry. Masalah ini biasanya disebabkan oleh kebergantungan Go yang hilang atau konfigurasi yang salah. Penyelesaian kepada masalah ini adalah untuk menyemak kebergantungan projek Go anda dan memastikan pembolehubah persekitaran seperti GOPATH dan GO111MODULE ditetapkan dengan betul.
Saya cuba membina dan melancarkan aplikasi go di https://fly.io, tetapi semasa membina saya tidak dapat mencari pakej ujian dan templat saya seperti ini:
. ├── cmd │ ├── doc │ │ ├── go.mod │ │ └── main.go │ ├── git │ │ ├── go.mod │ │ └── main.go │ ├── imp │ │ ├── go.mod │ │ └── main.go │ ├── log │ │ ├── go.mod │ │ └── main.go │ ├── met │ │ ├── go.mod │ │ └── main.go │ ├── orc │ │ ├── go.mod │ │ └── main.go │ ├── pub │ │ ├── go.mod │ │ └── main.go │ ├── rep │ │ ├── go.mod │ │ └── main.go │ └── web │ ├── fly.toml │ ├── go.gen │ ├── go.mod │ ├── go.sum │ ├── handlers.go │ ├── handlers_test.go │ ├── main.go │ ├── main_test.go │ ├── router.go │ └── router_test.go ├── contributing.md ├── go.mod ├── go.work ├── internal ├── license.txt ├── main.go ├── pctl ├── pkg │ ├── **templates** │ │ ├── base.qtpl │ │ ├── base.qtpl.go │ │ ├── go.mod │ │ ├── go.sum │ │ ├── whoami.qtpl │ │ └── whoami.qtpl.go │ └── **test** │ ├── go.mod │ └── test.go └── readme.md
https://paketo.io/docs/reference/go-reference/#package-management-with-go-modules Status:
the buildpack will vendor dependencies using go modules if the app source code contains a go.mod file. during the build phase, the go-mod-vendor buildpack(opens in a new tab) checks to see if the application requires any external modules and if it does, runs the go mod vendor command for your app. the resulting vendor directory will exist in the app’s root directory and will contain all packages required for the build.
Melihat log binaan, saya mendapati bahawa go modvendor memang dijalankan.
Paketo Buildpack for Go Distribution 2.2.3 Resolving Go version Candidate version sources (in priority order): go.mod -> ">= 1.19" -> "" Selected Go version (using go.mod): 1.19.5 Executing build process Installing Go 1.19.5 Completed in 35.526s Generating SBOM for /layers/paketo-buildpacks_go-dist/go Completed in 0s Paketo Buildpack for Go Mod Vendor 1.0.7 Checking module graph Running 'go mod graph' Completed in 1.166s Executing build process Running 'go mod vendor' Completed in 9.851s Generating SBOM for /workspace/go.mod Completed in 21ms Paketo Buildpack for Go Build 2.0.8 Executing build process Running 'go build -o /layers/paketo-buildpacks_go-build/targets/bin -buildmode pie -trimpath .' Failed after 611ms failed to execute 'go build': exit status 1 handlers.go:5:2: cannot find package "." in: /workspace/vendor/templates main.go:8:2: cannot find package "." in: /workspace/vendor/test ERROR: failed to build: exit status 1 Error failed to fetch an image or build from source: executing lifecycle: failed with status code: 51
pengendali.go:5:2: “模板”
main.go:8:2: "测试"
Saya sedang mencuba repositori peribadi sekarang.
Ini bukan penyelesaian yang bagus, tetapi masih boleh mengedit fail hos untuk menjadikan modul menghala ke pelayan fail tempatan.
# vim /etc/hosts 127.0.0.1 <module name>
Saya akan mengedit jawapan ini jika saya mengetahui sama ada masalahnya adalah dengan fly atau buildpack. Masalahnya ialah apabila fly runs go modvendor, ia tidak menghormati arahan penggantian dalam go.mod.
Selagi nama modul berada dalam format url, penyedia mod go yang berjalan sendiri akan menyalin semuanya dengan betul . Ia tidak semestinya URL yang sah.
Penyelesaian lain ialah dengan hanya mengehoskan kod pada url yang sah dan selesai dengannya. Saya mungkin kehilangan bendera, tetapi saya belum menemuinya lagi. Saya harap sesiapa yang menghadapi masalah ini mungkin mendapati jawapan ini membantu sementara itu.
Atas ialah kandungan terperinci Go Buildpack tidak dapat mencari modul setempat. Apa yang saya hilang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!