2

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

2 Answers2

0

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.

remy-actual
  • 724
  • 7
  • 19
0

You need to use the revel buildpack instead of the Go one. The buildpack will generate the Procfile for you.

Be sure to:

  • Add a .env file with this in your project: BUILDPACK_URL=https://github.com/revel/heroku-buildpack-go-revel.
  • Add a .godir file with the argument you use to run your app, e.g. github.com/yourcompany/yourrepo.
Aldo 'xoen' Giambelluca
  • 12,075
  • 7
  • 33
  • 39