我尝试使用docker compose设置CD / CI构建环境。 我有一个jenkins容器,一个声纳容器和一个archiva容器。问题是,我的jenkins无法连接到声纳和archiva。
我尝试将多个容器链接在一起或在同一网络中加入它们,但仍然没有成功。
在詹金斯,我收到以下错误:
Caused by: org.apache.http.conn.HttpHostConnectException: Connect to localhost:8081 [localhost/127.0.0.1] failed: Connection refused (Connection refused)
这是我的docker-compose文件。
version: '2'
volumes:
data-jenkins:
driver: 'local'
data-postgres:
driver: 'local'
data-sonarqube-conf:
driver: 'local'
data-sonarqube-data:
driver: 'local'
data-archiva:
driver: 'local'
services:
jenkins:
image: 'jenkins'
ports:
- '8080:8080'
restart: 'always'
volumes:
- 'data-jenkins:/var/jenkins_home'
links:
- 'sonarqube:sonarqube'
postgres:
image: 'postgres:9.6.1'
environment:
- 'POSTGRES_USER=postgres'
- 'POSTGRES_PASSWORD=postgres'
ports:
- '5432:5432'
restart: 'always'
volumes:
- 'data-postgres:/var/lib/postgresql/data'
sonarqube:
image: 'sonarqube'
depends_on:
- 'postgres'
ports:
- '9000:9000'
links:
- 'postgres:postgres'
environment:
- 'SONARQUBE_JDBC_URL=jdbc:postgresql://postgres:5432/'
- 'SONARQUBE_JDBC_USERNAME=postgres'
- 'SONARQUBE_JDBC_PASSWORD=postgres'
volumes:
- 'data-sonarqube-data:/var/lib/sonarqube/data'
- 'data-sonarqube-conf:/var/lib/sonarqube/conf'
archiva:
image: 'xetusoss/archiva'
ports:
- '8081:8080'
volumes:
- 'data-archiva:/var/archiva'
environment:
- 'SSL_ENABLED=false'
Jenkins容器似乎生活在一个独立的环境中。有谁可以一起加入所有环境?现在差不多一个星期一直在努力解决这个问题
答案 0 :(得分:2)
要从Jenkins引用你的sonarqube容器使用sonarqube:9000 docker会将你的服务名称 sonarqube 翻译成该容器的ip。
我还建议使用不同的网络而不是链接来连接容器。
答案 1 :(得分:0)
这是因为ping将发送到sonarqube。