在尝试连接到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~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我的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:/appDocker & Postgres: Failed to bind tcp 0.0.0.0:5432 address already in use
发布于 2018-04-05 16:37:29
在Travis CI中,Postgres服务似乎是默认启用的。
因此,您可以:
或
-p 5455:5432.一样
检查服务是否已经在运行也很有用:Check If a Particular Service Is Running on Ubuntu
发布于 2016-07-15 22:15:19
你用Travis的Postgres吗?
services: - postgresql
如果你提供travis.yml会更容易些
https://stackoverflow.com/questions/38398135
复制相似问题