gpt4 book ai didi

docker - 在 QNAP 中运行 GOCD docker 容器时出现 java.net.UnknownHostException

转载 作者:行者123 更新时间:2023-12-02 20:22:07 28 4
gpt4 key购买 nike

我正在尝试在容器站的 QNAP(基于 TS-451 x86,固件 4.2.0)上运行 gocd docker 容器(https://hub.docker.com/r/gocd/gocd-server/)。

容器没有启动并用 java.net.UnknownHostException 炸毁:

May 21 20:21:28 gocd-server-1 syslog-ng[16]: syslog-ng starting up; version='3.5.3'                                                                              
using default settings from /etc/default/go-server
ERROR: Failed to start Go server. Please check the logs.
java.lang.RuntimeException: gocd-server-1: gocd-server-1
at com.thoughtworks.go.util.ExceptionUtils.bomb(ExceptionUtils.java:36)
at com.thoughtworks.go.server.util.GoSslSocketConnector.getHostname(GoSslSocketConnector.java:102)
at com.thoughtworks.go.server.util.GoSslSocketConnector.storeX509Certificate(GoSslSocketConnector.java:92)
at com.thoughtworks.go.server.util.GoSslSocketConnector.sslConnector(GoSslSocketConnector.java:56)
at com.thoughtworks.go.server.util.GoSslSocketConnector.<init>(GoSslSocketConnector.java:51)
at com.thoughtworks.go.server.Jetty9Server.sslConnector(Jetty9Server.java:133)
at com.thoughtworks.go.server.Jetty9Server.configure(Jetty9Server.java:76)
at com.thoughtworks.go.server.GoServer.configureServer(GoServer.java:84)
at com.thoughtworks.go.server.GoServer.startServer(GoServer.java:70)
at com.thoughtworks.go.server.GoServer.go(GoServer.java:63)
at com.thoughtworks.go.server.util.GoLauncher.main(GoLauncher.java:31)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.simontuffs.onejar.Boot.run(Boot.java:306)
at com.simontuffs.onejar.Boot.main(Boot.java:159)
Caused by: java.net.UnknownHostException: gocd-server-1: gocd-server-1
at java.net.InetAddress.getLocalHost(InetAddress.java:1496)
at com.thoughtworks.go.server.util.GoSslSocketConnector.getHostname(GoSslSocketConnector.java:100)
... 15 more
Caused by: java.net.UnknownHostException: gocd-server-1
at java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method)

我检查了容器内的/etc/hosts - 它包括正确的主机映射:10.0.3.2 gocd-server-1
127.0.0.1       localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
10.0.3.2 gocd-server-1

hostname resovles correctly:
root@gocd-server-1:/tmp# hostname
gocd-server-1

容器镜像很好 - 我在 vagrant Ubuntu vm 上运行完全相同的 gocd docker 容器,没有任何问题

所以这个问题在某种程度上与 QNAP Linux(这似乎是 Ubuntu 4.1.2)有关

[~] # cat/proc/version
Linux 版本 3.12.6 (root@NasX86-12) (gcc 版本 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)) #1 SMP Fri Mar 11 02:20:16 CST 2016)

任何想法如何解决 java.net.UnknownHostException 异常?

最佳答案

关闭此线程:尽管我仍然不明白为什么会发生此异常,但我想我找到了解决方法。因此,如果您是 QNAP 的所有者并希望使用 ContainerStation 运行 GOCD 服务器,以下步骤可能会很有用:
1. 创建一个新容器,使用 tavix/gocd-server:lastest image (https://hub.docker.com/r/travix/gocd-server/)。这个容器使用 JDK8(而不是 JDK7 作为官方的 gocd 容器)加上它包括更多的配置选项(如果您在 ContainerStation 中创建容器时进入高级设置)。
2. 启动容器 - 你会得到异常 - Caused by: java.net.UnknownHostException。

为什么?不知道,我很确定我的/etc/hosts 设置是正确的。事实上,我知道他们是正确的。

  • 下一步 - 保持容器运行,但通过 ssh 连接到您的 QNAP:

    ssh admin@192.168.1.79 (在我的情况下 - 将盒子的 ip 更改为你的)

    //检查正在运行的图像:
    docker ps -a

  • dde6ce028868 tavix/gocd-server:latest "/docker-entrypoint.s"21 小时前 Up 21 hours 0.0.0.0:32793->8153/tcp, 0.0.0.0:32792->8154/tcp gocd
    // ssh into the container  
    docker exec -it dde6ce028868 bash

    // run go-server start script
    /usr/share/go-server/server.sh

    让它运行,就我而言,它成功启动了 gocd。
  • 清理工作目录
    rm -rf/var/lib/go-server/work/
  • 现在从 ContainerStation
  • 重新启动容器

    在我的情况下,它可以正确启动而没有未知的主机异常

    任何理论为什么? (DNS 缓存、权限、一些静默失败的初始化?)

    关于docker - 在 QNAP 中运行 GOCD docker 容器时出现 java.net.UnknownHostException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37367781/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com