docker postgres on travis-

我在尝试连接到我的docker postgres容器时遇到了与我的travis-ci before_script有关的问题: Error starting userland proxy: listen tcp 0.0.0.0:5432: bind: address already in use

我已经看到这个问题提出,但从来没有完全解决SO和Github问题,我不清楚是否具体到docker或特拉维斯。 一个链接的问题(下)通过使用5433作为主机postgres地址解决它,但我想确切地知道发生什么事情之前,我跳进了一些东西。

我的travis.yml:sudo:需要的服务: – docker env:DOCKER_COMPOSE_VERSION:1.7.1 DOCKER_VERSION:1.11.1-0〜trusty

 before_install: # list docker-engine versions - apt-cache madison docker-engine # upgrade docker-engine to specific version - sudo apt-get -o Dpkg::Options::="--force-confnew" install -y docker-engine=${DOCKER_VERSION} # upgrade docker-compose - sudo rm /usr/local/bin/docker-compose - curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` > docker-compose - chmod +x docker-compose - sudo mv docker-compose /usr/local/bin before_script: - echo "Before Script:" - docker-compose -f docker-compose.ci.yml build - docker-compose -f docker-compose.ci.yml run app rake db:setup - docker-compose -f docker-compose.ci.yml run app /bin/sh script: - echo "Running Specs:" - rake spec 

我的docker-compose.yml用于ci:

 postgres: image: postgres:9.4.5 environment: POSTGRES_USER: web POSTGRES_PASSWORD: yourpassword expose: - '5432' # added this as an attempt to open the port ports: - '5432:5432' volumes: - web-postgres:/var/lib/postgresql/data redis: image: redis:3.0.5 ports: - '6379:6379' volumes: - web-redis:/var/lib/redis/data web: build: . links: - postgres - redis volumes: - ./code:/app ports: - '8000:8000' # env_file: # setting these directly in the environment # - .docker.env # (they work fine locally) sidekiq: build: . command: bundle exec sidekiq -C code/config/sidekiq.yml links: - postgres - redis volumes: - ./code:/app 

Docker&Postgres:无法绑定已经在使用的tcp 0.0.0.0:5432地址

如何在Travis CI上获得Docker主机IP?

你使用Travis的Postgres吗?

services: - postgresql

如果你提供travis.yml会更容易一些