I have a Rails repo on Travis. It has a docker-compose.yml file:
postgres: image: postgres ports: - "5433:5432" environment: - POSTGRES_USER=calories - POSTGRES_PASSWORD=secretpassword
(I had to use 5433 as the host port because 5432 gave me an error: Error starting userland proxy: listen tcp 0.0.0.0:5432: bind: address already in use
)
And a travis.yml:
sudo: required services: - docker language: ruby cache: bundler before_install: # Install docker-compose - curl -L https://github.com/docker/compose/releases/download/1.4.0/docker-compose-`uname -s`-`uname -m` > docker-compose - chmod +x docker-compose - sudo mv docker-compose /usr/local/bin # TODO: Remove this temporary fix when it's safe to: # https://github.com/travis-ci/travis-ci/issues/4778 - sudo iptables -N DOCKER || true - sleep 10 - docker-compose up -d before_script: - bundle exec rake db:setup script: - bundle exec rspec spec after_script: - docker-compose stop - docker-compose rm -f
I am trying to figure out what to put in my database.yml so my tests can run on Travis CI. In my other environments, I can do:
adapter: postgresql encoding: unicode host: <%= `docker-machine ip default` %> port: 5433 username: calories password: secretpassword # For details on connection pooling, see rails configuration guide # http://guides.rubyonrails.org/configuring.html#database-pooling pool: 5
But unfortunately this doesn't work on Travis because there is no docker-machine
on Travis. I get an error: docker-machine: command not found
How can I get the Docker host's IP on Travis?