Why can't Heroku build my app with dependencies?

108 Views Asked by At

I have been working on a Go project and deploying it successfully with Heroku up until I added more packages. My Heroku app is set up to deploy the main branch of my github repo, but it fails to build the app each time I push. This is the build log:

-----> Using buildpack: heroku/go
-----> Go app detected
-----> Fetching stdlib.sh.v8... done
-----> 
       Detected go modules via go.mod
-----> 
       Detected Module Name: my-heroku-app
-----> 
-----> New Go Version, clearing old cache
-----> Installing go1.17.3
-----> Fetching go1.17.3.linux-amd64.tar.gz... done
-----> Determining packages to install
       
       Detected the following main packages to install:
            my-heroku-app
       
-----> Running: go install -v -tags heroku -mod=vendor my-heroku-app 
webapp.go:6:2: cannot find package "." in:
    /tmp/build_1bdd9ef1/vendor/github.com/go-sql-driver/mysql
webapp.go:7:2: cannot find package "." in:
    /tmp/build_1bdd9ef1/vendor/github.com/gorilla/context
webapp.go:8:2: cannot find package "." in:
    /tmp/build_1bdd9ef1/vendor/github.com/gorilla/sessions
webapp.go:9:2: cannot find package "." in:
    /tmp/build_1bdd9ef1/vendor/golang.org/x/crypto/bcrypt
 !     Push rejected, failed to compile Go app.
 !     Push failed

Here is what my import statement looks like

import (
    "database/sql"
    "fmt"
    _ "github.com/go-sql-driver/mysql"
    "github.com/gorilla/context"
    "github.com/gorilla/sessions"
    "golang.org/x/crypto/bcrypt"
    "html/template"
    "log"
    "net/http"
    "time"
    "unicode"
)

I have tried reading through the guides and documentation about govendor both at Heroku and on their github page, and as far as I can tell, I have done my setup correctly. I am currently using govendor and I have a vendor folder containing a json file in my repo that has the info for the dependencies. Everything works when I run it locally

update: I made a fresh repo with minimal code but as soon as I add a dependency I got the same error. I also tried deploying on Digital Ocean as well but I think they use the open source Heroku buildpack so I got the same error

update 2: I got a pared down version of the app working. The repo has no vendor directory or vendor json whatsoever despite using an external package (build log shows successful install of external package)

0

There are 0 best solutions below