Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker中的SonarQube无法解析本地主机_Docker_Sonarqube_Alpine_Sonarqube Ops - Fatal编程技术网

Docker中的SonarQube无法解析本地主机

Docker中的SonarQube无法解析本地主机,docker,sonarqube,alpine,sonarqube-ops,Docker,Sonarqube,Alpine,Sonarqube Ops,我正试图在Docker中使用。但是,在运行映像时,SonarQube似乎无法解析本地主机。以前有人遇到过这个问题吗 在此问题上的帮助将不胜感激 Dockerfile FROM gliderlabs/alpine:3.2 ENV SONAR_VERSION=5.6.1 \ SONARQUBE_HOME=/opt/sonarqube \ SONARQUBE_FORCE_AUTHENTICATION=true \ # Database configuration #

我正试图在Docker中使用。但是,在运行映像时,SonarQube似乎无法解析本地主机。以前有人遇到过这个问题吗

在此问题上的帮助将不胜感激

Dockerfile

FROM gliderlabs/alpine:3.2

ENV SONAR_VERSION=5.6.1 \
    SONARQUBE_HOME=/opt/sonarqube \
    SONARQUBE_FORCE_AUTHENTICATION=true \
    # Database configuration
    # Defaults to using H2
    SONARQUBE_JDBC_USERNAME=sonar \
    SONARQUBE_JDBC_PASSWORD=sonar \
    SONARQUBE_JDBC_URL=

# Http port
EXPOSE 9000

RUN apk -Uu add gnupg curl \
    && rm -rf /var/cache/apk/*

    # pub   2048R/D26468DE 2015-05-25
    #       Key fingerprint = F118 2E81 C792 9289 21DB  CAB4 CFCA 4A29 D264 68DE
    # uid   sonarsource_deployer (Sonarsource Deployer) <infra@sonarsource.com>
    # sub   2048R/06855C1D 2015-05-25
RUN gpg --keyserver ha.pool.sks-keyservers.net --recv-keys F1182E81C792928921DBCAB4CFCA4A29D26468DE

RUN set -x \
    && mkdir /opt \
    && cd /opt \
    && curl -o sonarqube.zip -fSL https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-$SONAR_VERSION.zip \
    && curl -o sonarqube.zip.asc -fSL https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-$SONAR_VERSION.zip.asc \
    && gpg --batch --verify sonarqube.zip.asc sonarqube.zip \
    && unzip sonarqube.zip \
    && mv sonarqube-$SONAR_VERSION sonarqube \
    && rm sonarqube.zip* \
    && rm -rf $SONARQUBE_HOME/bin/*

VOLUME ["$SONARQUBE_HOME/data", "$SONARQUBE_HOME/extensions"]

WORKDIR $SONARQUBE_HOME
COPY run.sh $SONARQUBE_HOME/bin/
ENTRYPOINT ["./bin/run.sh"]
码头工人日志

016.08.31 07:56:45 INFO   es[o.s.p.ProcessEntryPoint]  Starting es
2016.08.31 07:56:45 INFO   es[o.s.s.EsSettings]  Elasticsearch listening on 127.0.0.1:9001
2016.08.31 07:56:45 INFO   es[o.elasticsearch.node]  [sonar-1472630204100] version[1.7.5], pid[18], build[00f95f4/2016-02-02T09:55:30Z]
2016.08.31 07:56:45 INFO   es[o.elasticsearch.node]  [sonar-1472630204100] initializing ...
2016.08.31 07:56:45 INFO   es[o.e.plugins]  [sonar-1472630204100] loaded [], sites []
2016.08.31 07:56:45 INFO   es[o.elasticsearch.env]  [sonar-1472630204100] using [1] data paths, mounts [[/opt/sonarqube/data (/dev/vda2)]], net usable_space [55gb], net total_space [59gb], types [ext4]
2016.08.31 07:56:46 WARN   es[o.e.bootstrap]  JNA not found. native methods will be disabled.
2016.08.31 07:56:47 INFO   es[o.elasticsearch.node]  [sonar-1472630204100] initialized
2016.08.31 07:56:47 INFO   es[o.elasticsearch.node]  [sonar-1472630204100] starting ...
2016.08.31 07:56:47 WARN   es[o.e.common.network]  failed to resolve local host, fallback to loopback
java.net.UnknownHostException: 05ae620efc22: 05ae620efc22: unknown error
        at java.net.InetAddress.getLocalHost(InetAddress.java:1505) ~[na:1.8.0_72]
        at org.elasticsearch.common.network.NetworkUtils.<clinit>(NetworkUtils.java:55) ~[elasticsearch-1.7.5.jar:na]
        at org.elasticsearch.transport.netty.NettyTransport.createClientBootstrap(NettyTransport.java:350) [elasticsearch-1.7.5.jar:na]
        at org.elasticsearch.transport.netty.NettyTransport.doStart(NettyTransport.java:242) [elasticsearch-1.7.5.jar:na]
        at org.elasticsearch.common.component.AbstractLifecycleComponent.start(AbstractLifecycleComponent.java:85) [elasticsearch-1.7.5.jar:na]
        at org.elasticsearch.transport.TransportService.doStart(TransportService.java:153) [elasticsearch-1.7.5.jar:na]
        at org.elasticsearch.common.component.AbstractLifecycleComponent.start(AbstractLifecycleComponent.java:85) [elasticsearch-1.7.5.jar:na]
        at org.elasticsearch.node.internal.InternalNode.start(InternalNode.java:257) [elasticsearch-1.7.5.jar:na]
        at org.sonar.search.SearchServer.start(SearchServer.java:46) [sonar-search-5.6.1.jar:na]
        at org.sonar.process.ProcessEntryPoint.launch(ProcessEntryPoint.java:102) [sonar-process-5.6.1.jar:na]
        at org.sonar.search.SearchServer.main(SearchServer.java:81) [sonar-search-5.6.1.jar:na]
Caused by: java.net.UnknownHostException: 05ae620efc22: unknown error
        at java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method) ~[na:1.8.0_72]
        at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:928) ~[na:1.8.0_72]
        at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1323) ~[na:1.8.0_72]
        at java.net.InetAddress.getLocalHost(InetAddress.java:1500) ~[na:1.8.0_72]
        ... 10 common frames omitted
016.08.31 07:56:45信息es[o.s.p.ProcessEntryPoint]正在启动es
2016.08.31 07:56:45信息es[o.s.s.EsSettings]Elasticsearch收听127.0.0.1:9001
2016.08.31 07:56:45信息es[o.elasticsearch.node][sonar-1472630204100]版本[1.7.5],pid[18],构建[00f95f4/2016-02-02T09:55:30Z]
2016.08.31 07:56:45信息es[o.elasticsearch.node][sonar-1472630204100]正在初始化。。。
2016.08.31 07:56:45信息es[o.e.插件][sonar-1472630204100]已加载[],站点[]
2016.08.31 07:56:45信息es[o.elasticsearch.env][sonar-1472630204100]使用[1]个数据路径,挂载[/opt/sonarqube/data(/dev/vda2)],净可用空间[55gb],净总空间[59gb],类型[ext4]
2016.08.31 07:56:46未找到警告es[o.e.bootstrap]JNA。本机方法将被禁用。
2016.08.31 07:56:47信息es[o.elasticsearch.node][sonar-1472630204100]已初始化
2016.08.31 07:56:47信息es[o.elasticsearch.node][sonar-1472630204100]正在启动。。。
2016.08.31 07:56:47警告es[o.e.common.network]无法解析本地主机,回退到环回
java.net.UnknownHostException:05ae620efc22:05ae620efc22:未知错误
在java.net.InetAddress.getLocalHost(InetAddress.java:1505)~[na:1.8.0\u 72]
在org.elasticsearch.common.NetworkUtils.(NetworkUtils.java:55)~[elasticsearch-1.7.5.jar:na]
在org.elasticsearch.transport.netty.NettyTransport.createClientBootstrap(NettyTransport.java:350)[elasticsearch-1.7.5.jar:na]
在org.elasticsearch.transport.netty.NettyTransport.doStart(NettyTransport.java:242)[elasticsearch-1.7.5.jar:na]
在org.elasticsearch.common.component.AbstractLifecycleComponent.start(AbstractLifecycleComponent.java:85)[elasticsearch-1.7.5.jar:na]
在org.elasticsearch.transport.TransportService.doStart(TransportService.java:153)[elasticsearch-1.7.5.jar:na]
在org.elasticsearch.common.component.AbstractLifecycleComponent.start(AbstractLifecycleComponent.java:85)[elasticsearch-1.7.5.jar:na]
在org.elasticsearch.node.internal.InternalNode.start(InternalNode.java:257)[elasticsearch-1.7.5.jar:na]
在org.sonar.search.SearchServer.start(SearchServer.java:46)[sonar-search-5.6.1.jar:na]
在org.sonar.process.ProcessEntryPoint.launch(ProcessEntryPoint.java:102)[sonar-process-5.6.1.jar:na]
在org.sonar.search.SearchServer.main(SearchServer.java:81)[sonar-search-5.6.1.jar:na]
原因:java.net.UnknownHostException:05ae620efc22:未知错误
在java.net.Inet4AddressImpl.lookupAllHostAddr(本机方法)~[na:1.8.0\u 72]
在java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:928)~[na:1.8.0\u 72]
在java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1323)~[na:1.8.0\u 72]
在java.net.InetAddress.getLocalHost(InetAddress.java:1500)~[na:1.8.0\u 72]
... 省略10个公共框架
由于将“从系统中检索主机名”,请确保使用主机名启动容器

docker run --add-host xxx --hostname yyy 

请参见

在Alpine linux中可能没有名称服务开关文件,java需要一个用于java.net.InetAddress.getLocalHost的文件

在dockerfile中添加此行

RUN echo 'hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4' > /etc/nsswitch.conf

我在k8s上遇到了同样的问题,并通过提供一个环境变量来强制DB绑定到127.0.0.1来解决

kubectl run sonarqube --image=sonarqube --port=9092 --env="SONARQUBE_WEB_JVM_OPTS=-Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError -Dh2.bindAddress=127.0.0.1"

我会尝试在正在运行的容器(
docker exec-I-t/bin/bash
)中创建一个shell,看看是否可以从那里解析主机名,例如使用ping,然后查看
/etc/resolv.conf
以了解如何设置。但我认为docker为您解决了所有这些问题。但是它有一个主机名,尽管是自动生成的,在docker世界中应该是有效的,并且应该在/etc/hosts中设置,即使没有--add host。@Rup是的,我更多地考虑了这个旧问题Nice+1。同样有趣的是:
kubectl run sonarqube --image=sonarqube --port=9092 --env="SONARQUBE_WEB_JVM_OPTS=-Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError -Dh2.bindAddress=127.0.0.1"