Has anyone tried deploying a Revel app using Dokku?
I tried "https://www.digitalocean.com/community/tutorials/how-to-use-the-dokku-one-click-digitalocean-image-to-run-a-go-app" and it deployed successfully.
However, when I try a new Revel app, it gives me this error
remote: mv: cannot stat `/build/app/.heroku/g/bin/*': No such file or directory
This is the .godir that I created:
myappname
This is the Procfile:
myappname
What am I doing wrong?
Thanks
Since Revel is a web app (receiving incoming HTTP traffic), you need to declare a web process type in your Procfile, i.e.:
web: myappname ## Procfile requires a Unix process declaration
This tells Dokku what command to run to start the web process on the server -- in this case myappname.go in your project root.
Leave off the .go file extension in the Procfile.
Dokku is a "Docker powered mini-Heroku" so Heroku's support docs are relevant:
The unix process model is a simple and powerful abstraction for running server-side programs. Applied to web apps, the process model gives us a unique way to think about dividing our workloads and scaling up over time. The Heroku Cedar stack uses the process model for web, worker and all other types of dynos.
-- from Process Types and the Procfile - Heroku Dev Center
Note that the standard Go Buildpack for Heroku/Dokku needs either a Godeps directory, or the deprecated method of including a .godir file.
You need to use the revel buildpack instead of the Go one. The buildpack will generate the Procfile
for you.
Be sure to:
.env
file with this in your project: BUILDPACK_URL=https://github.com/revel/heroku-buildpack-go-revel
..godir
file with the argument you use to run your app, e.g. github.com/yourcompany/yourrepo
.