I am trying to deploy my Go Heroku app that uses dep
to manage dependencies. However, when I attempt to push it, the logs say this.
Total 818 (delta 147), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Go app detected
remote: -----> Fetching jq... done
remote: -----> Fetching tq... done
remote: !!
remote: !! Deprecated or unsupported version of go (go1.10.1)
remote: !! See https://devcenter.heroku.com/articles/go-support#go-versions for supported version information.
remote: !!
remote: -----> Installing go1.10.1
remote: -----> Fetching go1.10.1.linux-amd64.tar.gz... done
remote: !! Installing package '.' (default)
remote: !!
remote: !! To install a different package spec set 'metadata.heroku.pkg-spec' in 'Gopkg.toml'
remote: !!
remote: !! For more details see: https://devcenter.heroku.com/articles/go-apps-with-dep#build-configuration
remote: !!
remote: -----> Fetching dep... done
remote: -----> Fetching any unsaved dependencies (dep ensure)
remote: -----> Running: go install -v -tags heroku .
remote: main.go:7:2: cannot find package "backend/database" in any of:
remote: /tmp/tmp.2P0hB8CCKz/.go/src/main/vendor/backend/database (vendor tree)
remote: /app/tmp/cache/go1.10.1/go/src/backend/database (from $GOROOT)
remote: /tmp/tmp.2P0hB8CCKz/.go/src/backend/database (from $GOPATH)
remote: main.go:6:2: cannot find package "backend/user" in any of:
remote: /tmp/tmp.2P0hB8CCKz/.go/src/main/vendor/backend/user (vendor tree)
remote: /app/tmp/cache/go1.10.1/go/src/backend/user (from $GOROOT)
remote: /tmp/tmp.2P0hB8CCKz/.go/src/backend/user (from $GOPATH)
remote: ! Push rejected, failed to compile Go app.
remote:
remote: ! Push failed
remote: Verifying deploy...
remote:
remote: ! Push rejected to thindan.
remote:
It nags and complains about a GOPATH that is already correct on my system. I wonder why this is happening? My dep configuration file looks like this.
# Gopkg.toml example
#
# Refer to https://github.com/golang/dep/blob/master/docs/Gopkg.toml.md
# for detailed Gopkg.toml documentation.
#
# required = ["github.com/user/thing/cmd/thing"]
# ignored = ["github.com/user/project/pkgX", "bitbucket.org/user/project/pkgA/pkgY"]
#
# [[constraint]]
# name = "github.com/user/project"
# version = "1.0.0"
#
# [[constraint]]
# name = "github.com/user/project2"
# branch = "dev"
# source = "github.com/myfork/project2"
#
# [[override]]
# name = "github.com/x/y"
# version = "2.4.0"
[[constraint]]
name = "github.com/boltdb/bolt"
version = "1.3.1"
[[constraint]]
branch = "master"
name = "golang.org/x/crypto"
[metadata.heroku]
root-package = "backend"
go-version = "1.10.1"
build = ["."]
ensure = "false"
What is wrong, and how can I fix it?
It looks like your import paths in
main.go:7:2:
==> "backend/database"
and
main.go:6:2:
==> "backend/user"
are not set correctly. Are you able to run your app locally? Are those two imports your own, user-defined packages? If so, please provide a schematic of your project directory structure. I am pretty sure fixing the import paths will fix the problem.
just in case someone still have the this problem, I fixed by specifying the following Gopkg.toml:
[metadata.heroku]
root-package = "the-name-of-my-proyect"
install = ["./..."]
in my case I didn't specify go version so it took the default one. Also I specified the install - ["./..."] because I have a monorepo in which the go code is in a sub folder
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.