Docker组成链接容器

时间:2017-09-02 14:52:27

标签: docker jenkins docker-compose

我尝试使用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容器似乎生活在一个独立的环境中。有谁可以一起加入所有环境?现在差不多一个星期一直在努力解决这个问题

2 个答案:

答案 0 :(得分:2)

要从Jenkins引用你的sonarqube容器使用sonarqube:9000 docker会将你的服务名称​​ sonarqube 翻译成该容器的ip。

我还建议使用不同的网络而不是链接来连接容器。

答案 1 :(得分:0)

这是因为ping将发送到sonarqube。