Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.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
Scala 生成为Dockercontainer时无法访问HTTP servlet_Scala_Docker_Sbt Native Packager - Fatal编程技术网

Scala 生成为Dockercontainer时无法访问HTTP servlet

Scala 生成为Dockercontainer时无法访问HTTP servlet,scala,docker,sbt-native-packager,Scala,Docker,Sbt Native Packager,您好,感谢您抽出时间:) 目前,我在sbt native packager和Docker方面面临一些问题。我对这个比较陌生。事实上,这是我第一次尝试。我的问题来了: 我有一个Actor,它应该响应HTTP请求。如果我在没有Docker的情况下以本机方式运行它,效果会很好。现在我希望它被构建为Dockercontainer(有几个同伴,所以我使用DockerCompose)。因此,我使用sbt原生打包机,但现在当我点击 localhost:4444我刚刚得到“找不到”。所以我认为我的dockerB

您好,感谢您抽出时间:)

目前,我在sbt native packager和Docker方面面临一些问题。我对这个比较陌生。事实上,这是我第一次尝试。我的问题来了: 我有一个Actor,它应该响应HTTP请求。如果我在没有Docker的情况下以本机方式运行它,效果会很好。现在我希望它被构建为Dockercontainer(有几个同伴,所以我使用DockerCompose)。因此,我使用sbt原生打包机,但现在当我点击 localhost:4444我刚刚得到“找不到”。所以我认为我的dockerBuild设置有问题。我就是不知道是什么:(

下面是一些代码:

背景

lazy val graphiteprocSetting = eventprocSettings ++ Seq(
name := "graphite-processor",
dockerBaseImage := "nimmis/java:oracle-8-jdk",
daemonUser in Docker := "root",
debianChangelog in Debian := Some(file("*")),
mainClass in Compile := Some("*.StreamProcessorKafkaToGraphite"))
建造

Docker-compose.yml

graphiteprocessor:
  # TODO insert correct version via sbt
  image: graphite-processor:0.1.13-SNAPSHOT
  volumes:
    - ./conf:*
  environment:
    JAVA_OPTS: "-Dconfig.file=*"
  ports:
    - "4444:4444"
  links:
      - graphite
      - kafka
docker inspect的输出:

"NetworkSettings": {
        ...
        "Ports": {
            "4444/tcp": [
                {
                    "HostIp": "0.0.0.0",
                    "HostPort": "4444"
                }
            ]
        },
        ...
        "Gateway": "172.17.0.1",
        ...
        "IPAddress": "172.17.0.2",
        "Networks": {
            "bridge": {
                ...
                "Gateway": "172.17.0.1",
                "IPAddress": "172.17.0.2",
                ...

            }
        }
    }

当您构建image graphite处理器时:0.1.13-SNAPSHOT您在指令中使用了“EXPOSE 4444”吗?如果没有,端口映射-p 4444:4444将无效。

使用0.0.0.0作为主机并将基本映像更改为gdepuille/fedora java对我有效。

您是通过Linux虚拟机运行docker,还是您的主机本身直接是Linux?我的主机本身直接是一个LinuxOK,所以这不是主机和VM之间的端口转发问题。你确定docker容器正在运行吗?我的意思是,我认为sbt会在docker本地repo上创建一个
映像
,但稍后你必须运行它。你可以使用
docker ps-l
进行检查。我的docker容器很好正在运行。但您的右侧sbt只创建了一个映像。我在Docker中使用DockerXPosedPorts:=Seq(4444)进行了尝试。但它没有帮助。您如何运行Docker?如果它位于引导程序(如Docker machine)中,则“localhost”在helper VM之外无效。例如,如果您使用Docker machine,则必须通过运行“Docker machine env”来确定正确的IP。我不确定是否正确。Docker在我的计算机上本地运行,no docker机器,没有令人毛骨悚然的网络设置(其他docker映像可以通过localhost访问)。我也尝试使用127.0.0.1。也没有运气。最后的猜测可能是本地防火墙,或者再次检查您是否在尝试使用DockerPosedPorts的位置重建并运行了正确的标记。
"NetworkSettings": {
        ...
        "Ports": {
            "4444/tcp": [
                {
                    "HostIp": "0.0.0.0",
                    "HostPort": "4444"
                }
            ]
        },
        ...
        "Gateway": "172.17.0.1",
        ...
        "IPAddress": "172.17.0.2",
        "Networks": {
            "bridge": {
                ...
                "Gateway": "172.17.0.1",
                "IPAddress": "172.17.0.2",
                ...

            }
        }
    }