-
Notifications
You must be signed in to change notification settings - Fork 155
Description
When I run docker run --rm -v /tmp/app:/tmp/app gliderlabs/herokuish /bin/herokuish buildpack build
, the buildpack detected can be flaky. Any help is appreciated!
My app has a .buildpack
file which means the 00_buildpack-multi
should be detected.
My app also has a package.json
file, which means 02_buildpack-nodejs
should also be detected, but because the buildpacks are ordered, I expect 00_buildpack-multi
to be selected.
When I run the build, I get 02_buildpack-nodejs
roughly 95% of the time and 00_buildpack-multi
5% of the time. 00_buildpack-multi
is not even detected.
I did some testing and found that whatever buildpack is listed first gets randomly skipped and I'm not sure why. I manually deleted all the buildpacks, and installed 3 identical buildpacks. Sometimes herokuish reports 3 buildpacks detected, sometimes 2 buildpacks detected and it's always the first one that is skipped. I wasn't able to modify herokuish, but it almost seems as if buildpack-list() is not getting the first buildpack sometimes.
More details:
I'm trying to build an elixir app. I use 00_buildpack-multi
so that I can use https://github.com/HashNuke/heroku-buildpack-elixir
and https://github.com/gjaldon/heroku-buildpack-phoenix-static
, but phoenix creates a package.json
file to compile static assets.
What I'm seeing in my shell
~/tmp/dummy-app$ ls -a
. .. .buildpacks package.json
~/tmp/dummy-app$ sudo docker run --rm -v $PWD:/tmp/app gliderlabs/herokuish /bin/herokuish buildpack build
-----> Node.js app detected
~/tmp/dummy-app$ sudo docker run --rm -v $PWD:/tmp/app gliderlabs/herokuish /bin/herokuish buildpack build
-----> Node.js app detected
~/tmp/dummy-app$ sudo docker run --rm -v $PWD:/tmp/app gliderlabs/herokuish /bin/herokuish buildpack build
-----> Node.js app detected
~/tmp/dummy-app$ sudo docker run --rm -v $PWD:/tmp/app gliderlabs/herokuish /bin/herokuish buildpack build
-----> Warning: Multiple default buildpacks reported the ability to handle this app. The first buildpack in the list below will be used.
Detected buildpacks: multi nodejs
-----> Multipack app detected
=====> Downloading Buildpack: https://github.com/HashNuke/heroku-buildpack-elixir
Versions
~/tmp/dummy-app$ sudo docker run --rm -v $PWD:/tmp/app gliderlabs/herokuish /bin/herokuish version
herokuish: 0.3.22
buildpacks:
heroku-buildpack-multi v1.0.0
heroku-buildpack-ruby v148
heroku-buildpack-nodejs v91
heroku-buildpack-clojure v75
heroku-buildpack-python v85
heroku-buildpack-java v48
heroku-buildpack-gradle v18
heroku-buildpack-grails v21
heroku-buildpack-scala v72
heroku-buildpack-play v26
heroku-buildpack-php v114
heroku-buildpack-go v52
heroku-buildpack-erlang fa17af9
buildpack-nginx v6
~/tmp/dummy-app$ uname -a
Linux foo 4.4.0-62-generic #83-Ubuntu SMP Wed Jan 18 14:10:15 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
~/tmp/dummy-app$ sudo docker version
Client:
Version: 1.13.0
API version: 1.25
Go version: go1.7.3
Git commit: 49bf474
Built: Tue Jan 17 09:58:26 2017
OS/Arch: linux/amd64
Server:
Version: 1.13.0
API version: 1.25 (minimum version 1.12)
Go version: go1.7.3
Git commit: 49bf474
Built: Tue Jan 17 09:58:26 2017
OS/Arch: linux/amd64
Experimental: false
~/tmp/dummy-app$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
gliderlabs/herokuish latest 14a0c05d8c2d 29 hours ago 1.4 GB