在travis上启动docker postgres时出错

eri*_*ock 6 travis-ci docker docker-compose

在尝试连接到我的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或travis.一个链接的问题(下面)通过使用5433作为主机postgres地址来解决它,但我想知道在我跳入某事之前发生了什么.

我的travis.yml:sudo:所需服务: - docker env:DOCKER_COMPOSE_VERSION:1.7.1 DOCKER_VERSION:1.11.1-0~re 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
Run Code Online (Sandbox Code Playgroud)

我对ci的docker-compose.yml:

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
Run Code Online (Sandbox Code Playgroud)

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

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

小智 -1

你使用 Travis 的 Postgres 吗?

services: - postgresql

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