首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >船坞-组成连续集成

问船坞-组成连续集成
EN

Stack Overflow用户
提问于 2017-05-11 20:18:39
回答 1查看 396关注 0票数 0

我对码头技术很陌生。实际上,我的任务是创建一个使用坞-合成环境进行持续集成,这是我做的对接-合成,但当运行对接-合成,我仍然会遇到一些错误,如声纳异常:数据库连接失败。实际操作系统是VirtualBox窗口下的oracle。

代码语言:javascript
复制
version: '2'

networks:
  devnet:
    driver: bridge

services:
 nexus:
  image: sonatype/nexus
  container_name: nexus
  ports:
    - "8081:8081"
  networks:
    - devnet
  volumes:
    - "/opt/nexus/:/var/lib/nexus"

 jenkins:
  image: jenkins
  container_name: jenkins
  ports:
    - "8080:8080"
  networks:
    - devnet
  volumes:
    - "$PWD/jenkins:/var/jenkins_home"


 mongodb:
  image: mongo
  networks:
  - devnet
  ports:
    - 8085:8085  
  environment:
    - MONGODB_USER=root
    - MONGODB_DATABASE=srsmongodb
    - MONGODB_PASS=root
  volumes:
    - /srv/docker/mongodb:/var/lib/mongodb
  restart: always

 tomcat:
    image: tomcat
    container_name: tomcat
    networks:
    - devnet
    volumes:
      - ./target/ROOT.war:/usr/local/tomcat/webapps/ROOT.war
    ports:
      - 8084:8084
    restart: always

 sonarqube:
  image: sonarqube
  container_name: sonarqube
  restart: always
  ports:
   - "9000:9000"
  networks:
    - devnet
  environment:
    - SONARQUBE_JDBC_USERNAME=root
    - SONARQUBE_JDBC_PASSWORD=root
    - SONARQUBE_JDBC_URL=jdbc:mysql://sonardb:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
  volumes:
    - "/opt/sonar/:/var/lib/sonar"
  depends_on:
    - mysql

 mysql:
  image: mysql
  networks:
    - devnet
  restart: always
  ports:
    - 3307:3307
  tty: true
  volumes:
    - /opt/mysql:/var/lib/mysql:rw
  environment:
    - MYSQL_ROOT_PASSWORD=root
    - MYSQL_DATABASE=sonardb 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-11 20:27:24

您似乎混淆了MySQL数据库的DNS名称和MySQL数据库的名称。在您的示例中,sonarqube映像的JDBC应该是:

代码语言:javascript
复制
jdbc:mysql://mysql:3306/sonardb?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance

当您在Docker撰写中创建网络时,该网络中的服务将可用与服务相同的DNS名称。在这种情况下,mysql将解析为MySQL容器的IP地址。您向mysql服务提供的环境变量将创建一个名为sonardb的数据库。

具体参见https://docs.docker.com/compose/networking/#links的链接部分

默认情况下,任何服务都可以以该服务的名称到达任何其他服务。在下面的示例中,可以从主机名db和数据库的web访问db。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43924834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档