-- BotBot disconnected, possible missing messages --
-- BotBot disconnected, possible missing messages --
[0__0] joined the channel
fancyremarker joined the channel
WarrenL has quit
WarrenL joined the channel
fancyremarker1 joined the channel
fancyremarker is now known as Guest57991
Guest57991 has quit
fancyremarker1 is now known as fancyremarker
kshipley joined the channel
kshipley
Hey guys -- I'm trying to deploy my first app to Aptible and the health check is timing out on me. It's a vanilla Rails app using the sample Dockerfile from the support docs.
Is there an additional port I need to open up or something?
fancyremarker
hey there kshipley!
what was the error message in the build?
was it that the container failed to start or that it failed to respond within 300 seconds
kshipley
300s
remote: ERROR -- : Health check failed for 300 seconds, aborting!
fancyremarker
got it
so, in that case, it usually means that the app isn't listening on 0.0.0.0 the same port that's EXPOSEd in the Dockerfile
what's your app handle? I can review the specific case and DM you
kshipley
I think that solved the health check -- just needed to bind that IP in my Procfile
fancyremarker
ah, great — to 0.0.0.0 ?
kshipley
Yeah (I actually just used unicorn, but I think I could've bound the IP as well)
fancyremarker
yeah, we need to update those docs, between Rails 4.1.x and Rails 4.2.x, the default port binding switched from 0.0.0.0 to 127.0.0.1
kshipley
One other question -- the sample Dockerfile had a CMD to run the rails server, but you're also reading the Procfile. I should only be starting the server in the Procfile, correct?
fancyremarker
and we need the app to expose on 0.0.0.0 so that we can connect to the port from outside the app container
correct. whatever is in the Procfile overrides the CMD in the Dockerfile
the rationale is that most apps will have multiple services running off a single image (e.g., web, worker, ...), but Dockerfile only lets you specify 1 command
kshipley
Right -- makes sense
Last question, then I'll leave you alone for a bit -- does the load balancer require port 80 to be exposed on my app? I left 3000 exposed but now realize I may need to change that.
fancyremarker
i'm not sure i understand the question entirely — do you mean that you don't want to expose the app at all publicly?
kshipley
Nevermind. I think I may have just copy-pasted wrong. Still coming up to speed on Docker a bit, so my debugging skills are a work in progress.
fancyremarker
oh ok, no problem! happy to help here, and part of the challenge is that our docs are still getting up to speed. they'll improve a lot in the next few days
kshipley
No worries. I'll pop my head in if I run into any trouble. Thanks!