sonarqube的docker镜像没有运行mysql数据库configuration

我想通过下面的dockercommand运行与MySQL数据库sonarqube的docker形象:

sudo docker run -d --name hg-sonarqube \ -p 9000:9000 \ -e SONARQUBE_JDBC_USERNAME='sonar' \ -e SONARQUBE_JDBC_PASSWORD='sonar' \ -e SONARQUBE_JDBC_URL='jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance' \ sonarqube 

但由于错误,容器没有运行:

 2016.12.28 11:20:11 INFO web[][o.sonar.db.Database] Create JDBC data source for jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance 2016.12.28 11:20:11 ERROR web[][oaccC[.[.[/]] Exception sending context initialized event to listener instance of class org.sonar.server.platform.web.PlatformServletContextListener java.lang.IllegalStateException: Can not connect to database. Please check connectivity and settings (see the properties prefixed by 'sonar.jdbc.'). at org.sonar.db.DefaultDatabase.checkConnection(DefaultDatabase.java:108) 

MySQL服务正在运行和声纳数据库。 我使用命令创build数据库并在Ubuntu-14.04中授予权限。

 echo "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'welcome123'; flush privileges;" | mysql -u root -pwelcome123 echo "CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci; CREATE USER 'sonar' IDENTIFIED BY 'sonar';GRANT ALL PRIVILEGES ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar'; GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar'; flush privileges;" | mysql -u root -pwelcome123 

完整的日志文件:

 2016.12.28 11:19:58 INFO app[][osaAppFileSystem] Cleaning or creating temp directory /opt/sonarqube/temp 2016.12.28 11:19:58 INFO app[][ospmJavaProcessLauncher] Launch process[es]: /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java -Djava.awt.headless=true -Xmx1G -Xms256m -Xss256k -Djna.nosys=true -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError -Djava.io.tmpdir=/opt/sonarqube/temp -javaagent:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/management-agent.jar -cp ./lib/common/*:./lib/search/* org.sonar.search.SearchServer /opt/sonarqube/temp/sq-process5713024831851311243properties 2016.12.28 11:19:59 INFO es[][ospProcessEntryPoint] Starting es 2016.12.28 11:19:59 INFO es[][ossEsSettings] Elasticsearch listening on /127.0.0.1:9001 2016.12.28 11:19:59 INFO es[][o.elasticsearch.node] [sonarqube] version[2.3.5], pid[18], build[90f439f/2016-07-27T10:36:52Z] 2016.12.28 11:19:59 INFO es[][o.elasticsearch.node] [sonarqube] initializing ... 2016.12.28 11:19:59 INFO es[][oeplugins] [sonarqube] modules [], plugins [], sites [] 2016.12.28 11:19:59 INFO es[][o.elasticsearch.env] [sonarqube] using [1] data paths, mounts [[/opt/sonarqube/data (/dev/sda1)]], net usable_space [24.2gb], net total_space [28.8gb], spins? [possibly], types [ext4] 2016.12.28 11:19:59 INFO es[][o.elasticsearch.env] [sonarqube] heap size [1007.3mb], compressed ordinary object pointers [true] 2016.12.28 11:20:03 INFO es[][o.elasticsearch.node] [sonarqube] initialized 2016.12.28 11:20:03 INFO es[][o.elasticsearch.node] [sonarqube] starting ... 2016.12.28 11:20:03 INFO es[][oetransport] [sonarqube] publish_address {127.0.0.1:9001}, bound_addresses {127.0.0.1:9001} 2016.12.28 11:20:03 INFO es[][oediscovery] [sonarqube] sonarqube/CPgnfx6NTe2aO07d6fR0Bg 2016.12.28 11:20:06 INFO es[][oecluster.service] [sonarqube] new_master {sonarqube}{CPgnfx6NTe2aO07d6fR0Bg}{127.0.0.1}{127.0.0.1:9001}{rack_id=sonarqube, master=true}, reason: zen-disco-join(elected_as_master, [0] joins received) 2016.12.28 11:20:06 INFO es[][o.elasticsearch.node] [sonarqube] started 2016.12.28 11:20:06 INFO es[][oegateway] [sonarqube] recovered [0] indices into cluster_state 2016.12.28 11:20:06 INFO app[][ospmMonitor] Process[es] is up 2016.12.28 11:20:06 INFO app[][ospmJavaProcessLauncher] Launch process[web]: /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djruby.management.enabled=false -Djruby.compile.invokedynamic=false -Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError -Djava.security.egd=file:/dev/./urandom -Djava.io.tmpdir=/opt/sonarqube/temp -javaagent:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/management-agent.jar -cp ./lib/common/*:./lib/server/*:/opt/sonarqube/lib/jdbc/mysql/mysql-connector-java-5.1.39.jar org.sonar.server.app.WebServer /opt/sonarqube/temp/sq-process6242669754365841464properties 2016.12.28 11:20:08 INFO web[][ospProcessEntryPoint] Starting web 2016.12.28 11:20:08 INFO web[][ossaTomcatContexts] Webapp directory: /opt/sonarqube/web 2016.12.28 11:20:08 INFO web[][oachHttp11NioProtocol] Initializing ProtocolHandler ["http-nio-0.0.0.0-9000"] 2016.12.28 11:20:08 INFO web[][oatunNioSelectorPool] Using a shared selector for servlet write/read 2016.12.28 11:20:09 INFO web[][oeplugins] [Bushwacker] modules [], plugins [], sites [] 2016.12.28 11:20:11 INFO web[][osseEsClientProvider] Connected to local Elasticsearch: [127.0.0.1:9001] 2016.12.28 11:20:11 INFO web[][osspLogServerVersion] SonarQube Server / 6.2 / 4a28f29f95254b58f3cf0a0871bc632e998403f5 2016.12.28 11:20:11 INFO web[][o.sonar.db.Database] Create JDBC data source for jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance 2016.12.28 11:20:11 ERROR web[][oaccC[.[.[/]] Exception sending context initialized event to listener instance of class org.sonar.server.platform.web.PlatformServletContextListener java.lang.IllegalStateException: Can not connect to database. Please check connectivity and settings (see the properties prefixed by 'sonar.jdbc.'). at org.sonar.db.DefaultDatabase.checkConnection(DefaultDatabase.java:108) at org.sonar.db.DefaultDatabase.start(DefaultDatabase.java:75) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.picocontainer.lifecycle.ReflectionLifecycleStrategy.invokeMethod(ReflectionLifecycleStrategy.java:110) at org.picocontainer.lifecycle.ReflectionLifecycleStrategy.start(ReflectionLifecycleStrategy.java:89) at org.sonar.core.platform.ComponentContainer$1.start(ComponentContainer.java:320) at org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.start(AbstractInjectionFactory.java:84) at org.picocontainer.behaviors.AbstractBehavior.start(AbstractBehavior.java:169) at org.picocontainer.behaviors.Stored$RealComponentLifecycle.start(Stored.java:132) at org.picocontainer.behaviors.Stored.start(Stored.java:110) at org.picocontainer.DefaultPicoContainer.potentiallyStartAdapter(DefaultPicoContainer.java:1016) at org.picocontainer.DefaultPicoContainer.startAdapters(DefaultPicoContainer.java:1009) at org.picocontainer.DefaultPicoContainer.start(DefaultPicoContainer.java:767) at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:141) at org.sonar.server.platform.platformlevel.PlatformLevel.start(PlatformLevel.java:88) at org.sonar.server.platform.Platform.start(Platform.java:216) at org.sonar.server.platform.Platform.startLevel1Container(Platform.java:175) at org.sonar.server.platform.Platform.init(Platform.java:90) at org.sonar.server.platform.web.PlatformServletContextListener.contextInitialized(PlatformServletContextListener.java:44) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4812) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5255) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1408) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.) at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549) at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388) at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044) at org.sonar.db.profiling.NullConnectionInterceptor.getConnection(NullConnectionInterceptor.java:31) at org.sonar.db.profiling.ProfiledDataSource.getConnection(ProfiledDataSource.java:323) at org.sonar.db.DefaultDatabase.checkConnection(DefaultDatabase.java:106) ... 30 common frames omitted Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)