I am new to Docker and experimenting by creating an image from an existing Rails/Unicorn/MySQL app. My files are below and the image successfully creates but I'm unclear if things are actually working properly as I can't access the traditional Unicorn localhost URL, or the boot2docker IP.
So my question is, how do I access a Unicorn server locally on OSX with a Docker image running?
Dockerfile
# Dockerfile
FROM seapy/rails-nginx-unicorn
# Publish port 8080
EXPOSE 8080
CMD ["bundle", "exec","unicorn", "-p", "8080"]
Docker Image Run Command
docker run --name games-app --link test-mysql:mysql -p 8080 -d -e SECRET_KEY_BASE=test sample_rails_games_app
Docker PS Output
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cf9c45d62763 sample_rails_games_app "bundle exec unicorn 17 minutes ago Up 17 minutes 0.0.0.0:32777->8080/tcp games-app
93485cb7bcca mysql "/entrypoint.sh mysq 6 hours ago Up 6 hours 3306/tcp test-mysql
If I try to hit localhost:8080
or http://192.168.59.103:8080/
I am getting a Gateway Timeout: can't connect to remote host
Docker Logs Output
docker logs cf9c45d62763
I, [2015-07-30T22:44:44.941674 #1] INFO -- : listening on addr=0.0.0.0:8080 fd=9
I, [2015-07-30T22:44:44.941927 #1] INFO -- : worker=0 spawning...
I, [2015-07-30T22:44:44.944000 #1] INFO -- : master process ready
I, [2015-07-30T22:44:44.944836 #8] INFO -- : worker=0 spawned pid=8
I, [2015-07-30T22:44:44.945103 #8] INFO -- : Refreshing Gem list
I, [2015-07-30T22:44:46.729708 #8] INFO -- : worker=0 ready
I have also tried the boot2docker workarounds from here to no avail: https://github.com/boot2docker/boot2docker/blob/master/doc/WORKAROUNDS.md
Any guidance is greatly appreciated.
You have to use the eth1 address of your boot2docker vm.
Run from a shell:
and then
192.168.59.103
is the address you want to use from your mac. The port depends on what port your are forwarding. For example in this case:it's either
32771
or32770
. In this example it's an sshd server running by in your case it would be your unicorn which would be port32777
So I think you are connecting to the right address but you need to connect to32777
instead.Hope it helps.